Csharp/C#教程:entity framework – 在ObjectContext处理时分离实体?分享


entity framework – 在ObjectContext处理时分离实体?

我在WinForms应用程序中使用EF,我的想法是每个事务都有一个ObjectContext,而不是一个长时间运行的上下文。 但是当我尝试将先前事务中的对象附加到新事务中时,我遇到了一个错误,这与已经存在于另一个上下文中的实体有关。

我有点假设当对象上下文被处理时实体被分离,是不是这种情况? (也许我不会在某处正确处理上下文)。 如果实体没有分离,有没有办法处理?

编辑

显然,实体在上下文处理后并没有被分离,正如@ F.Aquino所说,但做这样的事情似乎有效。 虽然我不确定这是否是处理实体的正确方法。 也许有人可以评论可能由此产生的问题:

public void Attach(params EntityObject[] objects) { foreach (EntityObject obj in objects) { ((IEntityWithChangeTracker)obj).SetChangeTracker(null); entities.Attach(obj); } } 

基本上,当我想将实体重新附加到上下文时,我只是将实体的更改跟踪器置空,然后将其附加到新上下文。 它似乎工作正常。

您必须手动分离它们,并记住所有引用都将在此过程中处理。 有一个伟大的魔法课 ,处理由Matthieu Mezil在EF 1中重新附加实体的所有麻烦,用法如下:

上述就是C#学习教程:entity framework – 在ObjectContext处理时分离实体?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 public static EntityObject SaveOrUpdate(this EntityObject entity) { using (MyEntities context = new MyEntities()) { entity.AttachGraph(context, () => new MyEntities()); context.SaveChanges(); return entity; } } 

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

ctvol管理联系方式QQ:251552304

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

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐