在書中「Entity Framework 4 in Action」,在第16.1.3和再16.2.4,據說POCO/PROXY禁用延遲加載
如果你有一個代理實例,記得前禁用延遲加載 序列化,否則你最終會發送不需要的數據給客戶端。
但是,作者從來沒有說過如何禁用延遲加載。在我自己的搜索中,我聽說過ContextOptions.LazyLoadingEnabled。這是「完成」的方式嗎?是否有多種方式(除了禁用代理生成)?
我one article讀到,LazyLoadingEnabled標誌僅適用於EntityObject的實體,而不是POCO的entites:
打開延遲加載過,現在可以讓你的類被正確序列化 。請注意,這是如果您使用標準實體 框架類。如果你使用POCO,你將不得不做 稍有不同。
使用POCO,實體框架將創建默認的代理類 ,允許延遲加載等工作與POCO一起使用。這個代理 基本上創建了一個代理對象,它是位於上下文和POCO對象之間的完整實體框架 對象。當使用 POCO與WCF(或任何序列化)時,只需關閉延遲加載 不會削減它。您必須關閉代理創建,以確保 您的課程將正確序列化
我懷疑上述評論是錯誤的。