如果我有3個表:實體框架4負載,包括結合
表1,表2,表3
和表3有一個FK的表2,其中有一個FK,以表1
然後我打開我的對象是這樣的:
using(Entities entities = new Entities()
{
Table1 table = entities.Table1.FirstOrDefault();
table.Table2.Load();
}
如何關閉LazyLoading,我怎樣才能將table3切換到table2。
我知道我可以在FirstOrDefault語句中使用Include,但它會產生太大的連接。
ANSWER
using(Entities entities = new Entities())
{
Table1 table = entities.Table1.FirstOrDefault();
var table2 = table.Table2.CreateSourceQuery().Include("Table3")
.Execute(MergeOption.AppendOnly);
table.Table2.Attach(table2);
}
定義「太大連接」。使用include應該與使用Load不同,除了在單個查詢中發生。 –
空載將運行一個單獨的查詢來獲取外部表記錄。問題是Table3還有5個需要加載的外表。保存在記事本中的查詢大約100kb。我寧願有一個單獨的查詢外部記錄(Load就是這樣做的)。 – YesMan85