0

テーブルAにトリガーを設定して、テーブルAに新しい行を挿入するときにテーブルBの列の値を変更します。

現在の設計により、RowVersionエラーが発生します。そのため、エンティティに対して現在のトリガー機能を実行することを考えています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 に答える