簡體   English   中英

推銷EF實體; 禁用代理創建和延遲加載?

[英]seralizing EF entities; disabling Proxy Creation and Lazy Loading?

在將EF實體轉換為json對象時,關於循環引用存在一些問題。 我找到了適合我的解決方案,但我想知道即時通訊添加時實際上發生了什么

 context.ContextOptions.ProxyCreationEnabled = false;

和/或

context.ContextOptions.LazyLoadingEnabled = false;

第一個似乎足以獲取一維json對象。 我應該同時使用嗎? 他們實際上是做什么的? 有沒有解決這個問題的聰明方法? 謝謝

第一行關閉從您的實體類繼承的類的運行時生成。 此類實際上是在運行時使用的。 不是你的班級。 運行時生成的類可能無法序列化,這就是為什么此行(關閉代理生成)使序列化起作用的原因。

第二行關閉延遲加載。 假設您有上層實體和下層實體。 當您請求“父母”時,懶惰加載打開時不會加載子級。 當關閉時,無論何時加載“父級”,都將加載其所有子級。 如果您使用EF,我認為這是您應該熟悉的東西。

編輯:如果循環引用存在問題,則應關閉延遲加載。 然后,當您序列化父對象時,您將不會嘗試序列化具有對父對象的引用的子對象(創建循環引用)

暫無
暫無

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

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