我使用 EF 作为 ORM。
我处置objectContext
根据每一个要求。
我将实体保存在缓存层中,因为我的服务获得大量流量。
我有时会收到错误objectContext already disposed
对于我从缓存中获取的一些实体。
我已将此代码添加到从缓存检索到的元素中
if (maMDBEntities.Entry(group).State == EntityState.Detached)
{
maMDBEntities.Groups.Attach(group);
}
但现在我有时会收到此错误:
实体对象不能被 IEntityChangeTracker 的多个实例引用。
正在使用Attach()
从一开始就是一个错误的解决方案?
正如我们在您的其他问题中告诉您的(EF::attach(entity) 会解决 objectContext 已被废弃的问题吗? https://stackoverflow.com/questions/14724397/will-efattachentity-will-solve-objectcontext-is-already-desposed),您必须先分离实体,然后才能将其附加到另一个上下文!
If maMDBEntities
是一个新的上下文(不是加载数据的上下文),从这个上下文的角度来看,EntityState 不是“附加”的。所以你的支票还不够。
This maMDBEntities.Entry(group).State == EntityState.Detached
will always对于未加载实体的上下文为 true。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)