在实体框架中
故障排除“ 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中文网其他相关文章!