2

ObjectContext の SavingChanges イベントをタイムスタンプ エントリに処理しています。要件は、ColumnA のみが変更された場合、変更時にエントリにタイムスタンプを付けないことです。

このイベント中に変更された (変更されている) 列を見つける方法はありますか?

4

1 に答える 1

3

これはうまくいくはずです。これにより、追加/変更されたエントリがループされます。変更されたプロパティが複数あり、「ColumnA」でない場合は、タイムスタンプを変更できます。

public int SaveChanges()
{
     foreach( ObjectStateEntry entry in ObjectStateManager.GetObjectStateEntries( EntityState.Added | EntityState.Modified ) )
     {
         var properties = entry.GetModifiedProperties();

          if (!(properties.Count() == 1 && properties.First() == "ColumnA"))
          {
              //modify timestamp here
          }
     }

    return base.SaveChanges();
}
于 2012-08-09T14:55:54.503 に答える