これが私のデータモデルのサンプルです:
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");
ラムダを使用してこれを行うにはどうすればよいですか?
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 演算子を使用します。パラメータ名: パス