3 つのテーブルがある場合:
表 1、表 2、表 3
また、Table3 には Table2 の FK があり、Table2 には Table1 の FK があります。
次に、次のようにオブジェクトをロードします。
using(Entities entities = new Entities()
{
Table1 table = entities.Table1.FirstOrDefault();
table.Table2.Load();
}
LazyLoading がオフになっているため、table3 を table2 に熱心にロードするにはどうすればよいですか。
FirstOrDefault ステートメントで Include を使用できることはわかっていますが、非常に大きな結合が生成されます。
答え
using(Entities entities = new Entities())
{
Table1 table = entities.Table1.FirstOrDefault();
var table2 = table.Table2.CreateSourceQuery().Include("Table3")
.Execute(MergeOption.AppendOnly);
table.Table2.Attach(table2);
}