Csharp/C#教程:IEntityChangeTracker的多个实例不能引用实体对象分享


IEntityChangeTracker的多个实例不能引用实体对象

我使用EF作为ORM。

我在每个请求上都objectContextobjectContext

我将实体保存在缓存层中,因为我的服务获得了大量流量。

我有时得到错误objectContext already disposed为我从缓存中获得的一些实体处理了。

我已将此代码添加到从缓存中重新获取的元素中

 if (maMDBEntities.Entry(group).State == EntityState.Detached) { maMDBEntities.Groups.Attach(group); } 

但现在我有时会收到这个错误:

IEntityChangeTracker的多个实例不能引用实体对象。

从一开始就使用Attach()一个不正确的解决方案?

正如我们在你的另一个问题中告诉你的那样( EF :: attach(实体)将解析objectContext已经被废弃了吗? ),你必须在将实体附加到另一个Context之前将它们分离!

如果maMDBEntities是新的Context(不是加载数据的那个),则EntityState不会从此Contexts视点“附加”。 所以你的检查是不够的。

对于未加载实体的上下文,此maMDBEntities.Entry(group).State == EntityState.Detached始终为true。

上述就是C#学习教程:IEntityChangeTracker的多个实例不能引用实体对象分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/942536.html

(0)
上一篇 2021年11月13日
下一篇 2021年11月13日

精彩推荐