0

我在表 A 上触发以在表 A 上插入新行期间更改表 B 上的列值。

由于当前的设计,我收到 RowVersion 错误。所以我正在考虑在 entity 上执行当前触发功能SubmitChanges。我相信INotifyPropertyChanged在属性更改时触发,在我的情况下将在表 A 属性更改时触发,这不是我想要的。我想对表 A 的行插入执行操作以更新表 B 上的值。

任何人都知道什么是更好的方法来处理它?

4

1 回答 1

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);
}
于 2012-05-21T08:01:15.837 回答