在實體框架中
故障排除「 objectContext實例已被處理」例外 遇到錯誤「對ObjectContext實例已被處置,並且不能再用於需要連接的操作?」 本指南提供了一個解決方案。
根本原因:> Entity Framework的預設延遲載入機制通常是罪魁禍首。 啟用了懶惰加載,導航屬性被標記為虛擬的,允許EF創建代理類,以按需處理相關的資料。
理解問題:
讓我們用一個範例來說明:
ef產生一個擴充的代理類別。 該代理保留懶惰的引用液體屬性。 問題出現了:
<code class="language-csharp">public class MemberLoan { public string LoandProviderCode { get; set; } public virtual Membership Membership { get; set; } }</code>
aMemberLoan
DbContext
用於Membership
>。
using
在存取懶惰的屬性之前,DbContext
被處置,導致「 ObjectDisposedException」。 using
解決方案:急切的加載此方法會預先載入所有會員資格,以防止例外。
DbContext
要進行更深入的潛水,請諮詢微軟有關載入相關實體的文件:
以上是如何修復實體框架中的' ObjectContext實例已被處理”例外?的詳細內容。更多資訊請關注PHP中文網其他相關文章!