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