【问题标题】:Using statment and Entity Framework Entities使用语句和实体框架实体
【发布时间】:2009-07-23 04:17:56
【问题描述】:

当实体附加并跟踪更改以及未跟踪实体时,我有点难以理解。对不起,如果这已经被问到了。假设我有一些这样的代码:

public MyEntity GetEntity()
{
    using (var ctx = new MyObjectContext)
    {
        return ctx.MyEntitySet.First();
    }
}

那我就叫它

var result = GetEntity();

结果应该与上下文关联还是分离?

我的印象是,当 ObjectContext 被处理时,实体失去了更改跟踪。或者上下文永远不会被释放。

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    如果您在处置 ctx 时编写该代码,因为您没有将实体与 ctx 分离,您无法将其附加到另一个上下文。本质上,从实体到 ctx 的反向指针仍然存在,这阻止了这种情况的发生。

    我想你可以说它是“伪附加”。

    希望对你有帮助

    Alex James

    项目经理实体框架团队

    【讨论】:

      【解决方案2】:

      在我的理解中,对象的附件与上下文没有直接关系。我相信如果设置了实体键,那么它仍然是附加的。您可以分离对象,但必须使用 Detach 方法手动完成。

      如果您想要一个分离的对象,请尝试手动分离它。否则,您所做的应该允许您更新对象并保存更改而无需重新附加对象。

      干杯

      【讨论】:

        猜你喜欢
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 2012-11-24
        • 2011-01-23
        • 2013-04-05
        • 1970-01-01
        相关资源
        最近更新 更多