以下是我的数据模型示例:
class Invoice
{
public ICollection<LineItem> LineItems { get; set; }
}
class LineItem
{
public string Text { get; set; }
public Invoice Invoice { get; set; }
public Category Category { get; set; }
}
class Category
{
public string Name { get; set; }
}
我可以像这样急切加载LineItem:
return DataContext.Invoices.First().Include("LineItems.Category");
如何使用Lambda执行此操作?
return DataContext.Invoices.First().Include(li => li.LineItems); //I can't chain any more includes since LineItems is an ICollection
修改: 我试过了
return DataContext.Invoices.Include(i => i.LineItems.First().Category).Single();
并产生ArgumentException
,其中包含以下消息:
Include路径表达式必须引用导航属性 在类型上定义。使用虚线路径进行参考导航 属性和集合导航的Select运算符 属性。参数名称:路径
答案 0 :(得分:2)
我刚刚尝试了以下内容,它似乎运作正常:
return DataContext.Invoices.Include(i => i.LineItems.Select(li => li.Category)).Single();
答案 1 :(得分:0)
试试这个
return DataContext.Invoices.Include(li => li.LineItems).First();