用LINQ从10个字段中选择3个字段
本文关键字:字段 3个 选择 10个 LINQ | 更新日期: 2023-09-27 18:06:24
my query:
public List<Book> GetAllBook()
{
return (from c in this.LDEntities.Book
select new
{
c.IdBook,
c.NameBook,
c.Athour
}).ToList();
}
错误:不能隐式地将类型"AnonymousType#1"转换为"System.Collections.Generic.List"
正确的代码是什么?
更新:我在分层架构中使用实体框架
试试这个:
public List<Book> GetAllBook() {
var q = (from c in this.LDEntities.Book
select new Book()
{
IdBook = c.IdBook,
NameBook = c.NameBook,
Athour = c.Athour }).ToList();
return (q);
}
也就是说,创建一个Book类型的集合,而不是一个匿名类型的集合。
您没有转换到Book
实例。您需要这样做:
from c in LDEntities.Book
select new Book { /* Your Properties to Set */ }
你要做的是返回一个匿名对象作为返回类型。它试图将List<a'>
转化为List<Book>
两者之间没有关系。
如果您只想返回匿名对象,则需要抽象逻辑并使方法泛型:
public List<T> GetAllBook<T>(Func<Book, T> transformer)
{
return LDEntities.Book.Select(transformer).ToList();
}
然后你可以这样调用代码:
var myObjects = GetAllBook(x => new { c.IdBook, c.NameBook, c.Athour });
我猜是
public List<Book> GetAllBook()
{
var q = (from c in this.LDEntities.Book
select c).ToList();
return (q);
}
如果LDEntities 。