也就是说,我想这样做:
var lists = (from list in this.DB.Lists
select new
{
List = list,
Items = list.ListItems.ToList(),
}).ToList();
但是,很明显,实体框架不支持select子句中的ToList
扩展方法。
我该怎么办?我试过的任何其他方法都会在迭代时向数据库发送大量查询。
答案 0 :(得分:1)
您是否尝试过Include
扩展方法?
var lists = (from list in this.DB.Lists.Include("ListItems")
select list).ToList();
foreach(var item in lists)
{
// there shouldn't be any DB calls here.
var items = list.ListItems.ToList();
}
答案 1 :(得分:0)
您无法在转换为SQL的查询部分调用ToList
,但您可以使用AsEnumerable
在本地执行此操作:
var lists = (from list in this.DB.Lists.AsEnumerable()
select new
{
List = list,
Items = list.ListItemsItems.ToList()
}).ToList();