我有三个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