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");

ラムダを使用してこれを行うにはどうすればよいですか?

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