次のエンティティ モデルを検討してください。
public class Parent
{
public virtual FirstChild FirstChild { get; set; }
public virtual SecondChild SecondChild { get; set; }
}
私のコードでは、Parent
エンティティをロードしました:
Parent parent = <loaded in some way>;
ナビゲーション プロパティを明示的に読み込むには、次を使用します。
db.Entry(parent).Reference(p => p.FirstChild).Load();
db.Entry(parent).Reference(p => p.SecondChild).Load();
ただし、これにより 2 つの DB クエリが発生します。
質問: 単一のクエリで複数のナビゲーション プロパティを明示的にロードできる、より洗練された方法はありますか?
ロードしていない場合はparent
、熱心なロードを行います。
Parent parent = db.Parents
.Include(p => p.FirstChild)
.Include(p => p.SecondChild)
.FirstOrDefault();
しかし、前述したように、関連するエンティティなしで既に読み込まれています (読み込みコードを変更することはできません)。