簡體   English   中英

POCO / PROXY禁用延遲加載

[英]POCO/PROXY Disabling Lazy Loading

在第16.1.3節以及第16.2.4節“ 行動中的實體框架4 ”一書中對此進行了說明。

如果您有代理實例,請記住在序列化之前禁用延遲加載,否則最終將不必要的數據發送到客戶端。

但是,作者從未說過如何禁用延遲加載。 在我自己的搜索中,我聽說過ContextOptions.LazyLoadingEnabled。 是這樣的“方式”嗎? 有不止一種方法(除了禁用代理生成)?

我讀過一篇文章 ,其中LazyLoadingEnabled標志僅適用於EntityObject實體,不適用於POCO實體:

關閉延遲加載現在將允許您的類正確序列化。 注意,這是在使用標准實體框架類的情況。 如果您使用的是POCO,則必須做一些稍有不同的事情。

使用POCO,默認情況下,實體框架將創建代理類,從而允許像延遲加載這樣的事情與POCO一起使用。 此代理基本上創建一個代理對象,該對象是位於上下文和POCO對象之間的完整的Entity Framework對象。 當將POCO與WCF(或任何序列化)一起使用時,僅關閉延遲加載不會削減它。 您必須關閉代理創建以確保您的類將正確序列化

我懷疑以上評論簡直是錯誤的。

是的, ContextOptions.LazyLoadingEnabled是“方法”。 序列化問題是相關的,但有所不同。 代理具有不同的運行時類型。 那會導致序列化。 與延遲加載的唯一關系是純(非代理)POCO不會進行延遲加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM