我在表A上触发了在表A上新行插入期间更改表B上的列值。
由于目前的设计,我收到RowVersion错误。所以我想在实体SubmitChanges
上执行当前的触发功能。我相信INotifyPropertyChanged
解雇了财产变更,在我的情况下将被解雇表A财产变更,这不是我想要的。我想对表A行插入执行操作以更新表B上的值。
任何人都知道什么是更好的处理方式?
答案 0 :(得分:0)
您可以覆盖SaveChanges
,将所有实体插入到表A中,并对表B中的实体执行更新。
public override int SaveChanges(SaveOptions options)
{
foreach(TableA a in ObjectStateManager.GetObjectStateEntries(EntityState.Added)
.Where(e => !e.IsRelationship)
.Select(e => e.Entity)
.OfType<TableA>())
{
// Here you can get your TableB entity and do an update
// If you don't have those entities already loaded you will load
// them one by one so it will probably need some additional
// adjustments for better performance
}
return base.SaveChanges(options);
}