我在表 A 上触发以在表 A 上插入新行期间更改表 B 上的列值。
由于当前的设计,我收到 RowVersion 错误。所以我正在考虑在 entity 上执行当前触发功能SubmitChanges
。我相信INotifyPropertyChanged
在属性更改时触发,在我的情况下将在表 A 属性更改时触发,这不是我想要的。我想对表 A 的行插入执行操作以更新表 B 上的值。
任何人都知道什么是更好的方法来处理它?
我在表 A 上触发以在表 A 上插入新行期间更改表 B 上的列值。
由于当前的设计,我收到 RowVersion 错误。所以我正在考虑在 entity 上执行当前触发功能SubmitChanges
。我相信INotifyPropertyChanged
在属性更改时触发,在我的情况下将在表 A 属性更改时触发,这不是我想要的。我想对表 A 的行插入执行操作以更新表 B 上的值。
任何人都知道什么是更好的方法来处理它?
您可以覆盖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);
}