オブジェクトで変更されたフィールドを確認する方法はありますか?
問題の例:日付フィールドが変更され、変更がカスタムで保存されている場合、関連するオブジェクトにカスタムロジックを適用する必要があります。
私は以前にそれをやろうとしていますcontext.SaveChanges();
がObjectStateManager
、必要なすべての情報を私に与えてくれません。
オブジェクトで変更されたフィールドを確認する方法はありますか?
問題の例:日付フィールドが変更され、変更がカスタムで保存されている場合、関連するオブジェクトにカスタムロジックを適用する必要があります。
私は以前にそれをやろうとしていますcontext.SaveChanges();
がObjectStateManager
、必要なすべての情報を私に与えてくれません。
なぜそれを使うObjectStateManager
のですか?getterとsetterを持つエンティティがあるので、そのロジックトリガーをsetterに配置するだけです。エンティティに実装INotifyPropertyChanged
して、必要なプロパティがエンティティの外部で変更されたときにイベントを処理することもできます。
それ以外の場合は、エンティティにObjectStateManager
getObjectStateEntry
を使用して、エンティティとを比較する必要がCurrentValues
ありますOriginalValues
。しかし、これはほとんど間違ったアプローチです。ロジックは、エンティティ内のコードによってトリガーされる必要があります。