[英]C# Entity Framework lazy loading if not detached
我正在嘗試對我的 EntityFramework OnSave 中的每個 object 執行一些處理。 此過程的一部分涉及將 object 轉換為二進制 object。 序列化需要 FOREVER,我 99% 的肯定是因為我們在 EntityFramework 上使用延遲加載,並且它正在抓取在 PartialClasses 中訪問的延遲加載對象。
我嘗試將我的 object 從 ObjectContext 中分離出來,但我的同事在我們的應用程序中使用了延遲加載,而沒有首先檢查 object 是否為 NULL。
例如,我們的 Partial Classes 文件中有這樣的代碼:
get { return this.ContactsTable.FullName; }
只要 object 沒有分離,它就可以正常工作。 一旦它被分離,我就會得到 Null 參考錯誤。
我的問題是:我是否可以分離我的 object 並且延遲加載不會拋出 Null 引用異常,或者我是否可以告訴 DataContractSerializer 忽略延遲加載的對象?
我是否可以分離我的 object 並且延遲加載不拋出 Null 參考異常
不。
我是否可以告訴 DataContractSerializer 忽略延遲加載的對象
不。
但應該有簡單的解決方案。 當您 go 序列化實體時,請在附加實體的上下文中調用:
// Turn off the lazy loading
context.ContextOptions.LazyLoadingEnabled = false;
// Run your serialization here
...
// Turn on the lazy loading again
context.ContextOptions.LazyLoadingEnabled = true;
但這很奇怪,因為序列化會嘗試序列化所有加載的實體,並且根據您的描述,您似乎永遠不知道 object 圖的大部分將被序列化。
如果您真的只想保存單個 object 分離是 go 的方法,但它會破壞與其他對象的所有關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.