实体已更新但未在SaveChanges后保存

时间:2013-12-09 16:05:28

标签: c# entity-framework

我有三个EF实体(A; B; C),其中B和C从A继承。

A有bool属性(boolBitflag)。

我的问题如下。

我对B的实例进行更改,将其附加到新的objectContext,将entityState更改为已更改,保存更改,然后保存它们。

当我更改B和A的parrentclass实例时,我将实体附加到新的对象上下文,更改实体状态,保存更改,...以下情况发生。 B中的更改已保存,但A parrent中的更改未更新。在调试时,一切看起来都很好。 Savechanges不会触发任何异常,但更改不会保存在parrent实体中。

修改 我简化了一点。

B bInstance;

using(var con = new DbContext())
{
    bInstance = con.A.OfType<B>().ToList().FirstOrDefault(); 
    // bInstance.Name = "ExampleText"
    // bInstance.boolBitflag = False
}

using(var con = new DbContext())
{
    bInstance.Name = "Example" //Property of B
    bInstance.boolBitflag = True //Property of A

    con.A.Attach(bInstance);
    ObjectStateManager.ChangeObjectState(bInstance, EntityState.Modified);
    con.SaveChanges();
}

//
    // bInstance.Name = "Example"
    // bInstance.boolBitflag = False

0 个答案:

没有答案