1

这是我的数据模型的示例:

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了以下消息:

包含路径表达式必须引用在类型上定义的导航属性。对引用导航属性使用虚线路径,对集合导航属性使用 Select 运算符。参数名称:路径

4

2 回答 2

2

我刚刚尝试了以下方法,它似乎工作正常:

return DataContext.Invoices.Include(i => i.LineItems.Select(li => li.Category)).Single();
于 2013-07-22T17:28:08.607 回答
0

尝试这个

return DataContext.Invoices.Include(li => li.LineItems).First();
于 2013-07-22T15:53:28.227 回答