在表A上插入新行的过程中,我在表A上使用触发器来更改表B上的列值。
由于目前的设计,我得到了RowVersion错误。所以我正在考虑在entity SubmitChanges上执行当前的触发器功能。我相信INotifyPropertyChanged在属性改变时被激发,在我的情况下会在表A属性改变时被激发,这不是我想要的。我想对表A执行行插入操作,以更新表B的值。
有谁知道处理它的更好的方法是什么?
发布于 2012-05-21 16:01:16
您可以覆盖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);
}https://stackoverflow.com/questions/10677814
复制相似问题