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

A有bool属性(boolBitflag) .

我的问题如下 .

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

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

EDIT 我简化了一下 .

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