天天看點

序列化類型 System.Data.Entity.DynamicProxies 的對象時檢測到循環引用

序列化類型 System.Data.Entity.DynamicProxies 的對象時檢測到循環引用

詳細錯誤内容為:

不應為資料協定名稱為BlogArticle_8F5767B5CA34AC0BBFE8F59DB428937035A9A77CC2917A318A2808A379392602:

http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies”的類型“System.Data.Entity.DynamicProxies.BlogArticle_8F5767B5CA34AC0BBFE8F59DB428937035A9A77CC2917A318A2808A379392602”。請考慮使用 DataContractResolver,或将任何未知類型以靜态方式添加到已知類型的清單。例如,可以使用 KnownTypeAttribute 特性,或者将未知類型添加到傳遞給 DataContractSerializer 的已知類型清單。

出現該錯誤的原因:

EF的上下文預設采用建立代理的方式傳回實體集合,如果不需要,可以這樣:

context.ContextOptions.ProxyCreationEnabled = false;

即可關閉。

另外對EF上下文的幾個重要設定選項作個說明:

LazyLoadingEnabled

啟用延遲加載, true 啟用,false 不啟用;

ProxyCreationEnabled

建立代理, true 建立,false 不建立;

UseLegacyPreserveChangesBehavior

确定是否使用舊的行為, true 使用,false 不使用;

本文轉自遠哥部落格園部落格,原文連結:http://www.cnblogs.com/taven/archive/2010/10/08/1845871.html,如需轉載請自行聯系原作者

繼續閱讀