[英]Entity framework 4 : Why are related entites loaded even though there is no Include statement?
我正在使用實體框架4。我有2個對象:一個Process對象和一個ProcessDescription對象。 流程和ProcessDescription之間存在一對一關聯(一個流程始終具有一個ProcessDescription)
我正在執行以下操作:
using (EFEntities ef = new EFEntities(ConnectionString.EFConnString))
{
var source = ef.Process;
List<BusinessLayer.Process> processList = source.ToList();
}
在ToList語句之后,如果我在調試器中檢查processList,則可以看到ProcessDescription對象可用於每個Process,並且我想知道為什么。 我以為我必須編寫.include(“ ProcessDescription”)才能包含它們。 它是一對一的關聯,會自動加載嗎?
更新:EnableLazyLoading確實設置為true。 我的問題是:如果將該屬性設置為true,我認為將加載相關實體,但僅在需要時才加載。 要檢查它是否已加載,我們可以在相關實體上使用IsLoaded標志。 但是,就我而言,ProcessDescription對象上沒有IsLoaded屬性。 這是否意味着當我執行“ ToList()”時,會再次自動執行內部聯接,因為這是一對一關系?
關閉延遲加載,您將在調試器中看到空值。
context.ContextOptions.LazyLoadingEnabled = false;
http://msdn.microsoft.com/zh-CN/library/system.data.objects.objectcontext.contextoptions.aspx
(假設數據庫首先使用ObjectContext)
在實體之間的關系中,實體框架自動加載所有關聯的實體。 您可以通過在using語句中設置ef.ContextOptions.LazyLoading = false
來禁用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.