2012-04-26 2 views
0

かなり簡単な質問プログラマが観測可能なコレクション内の変更をオブジェクトコンテキスト(EF4)と同期させる最も一般的な方法は何ですか?私の状況では、私はORFとしてEF4を使用しているSQL CE 4.0 dbを持っており、データベース(MVVM)からオブジェクトを取る観測可能なコレクションを使って作業しています。EF4コンテキストでObservableCollectionを同期

基本的には、観測可能なコレクションを操作しているときにオブジェクトコンテキストを追加、削除、変更するコードを設定する最も論理的な方法を知りたいと思います。これを達成するための

乾杯

答えて

0

最も簡単な方法は、INotifyCollectionChangedを実装して独自のカスタムコレクションクラスを作成することです。これにより、コレクションが変更されたときにエンティティを追加したり削除したりすることができます。エンティティの更新はコレクションクラスの役割ではなく、各エンティティのモデルラッパーまたはビューモデルの関数です。

1

ObservableCollectionのCollectionChangedイベントにサブスクライブし、任意のEFロジックを追加して、挿入/削除をデータベースモデルに保存できます。

+0

この場合、外部更新をデータベースにどのように処理しますか? –

+0

それはもう少し難しいでしょう。新しいレコードをコレクションに戻すことができるディスパッチタイマーのような更新を確認する別のメカニズムが必要になります。これをあなたのオブジェクトに焼きたいのであれば、自分でコレクションを作る必要があります。 ObservableCollectionだけを更新していたように、あなたの最初の質問が響きました。 – Tyrsius

+0

ObservableCollectionにエンティティを追加すると、CollectionChangedイベントによってデータベースが変更されます。したがって、データベースが制約やその他の理由により操作を拒否した場合、ObservableCollectionの操作を元に戻す必要がありますか? –

関連する問題