作業単位はEntityFrameworkに実装されているため、ObjectContextを使用してEntityに変更を加えたときに追跡され、その後SaveChanges基礎となるデータベースに反映されます。EntityFramework、作業単位 - カスタムデータの変更を追跡してWebService経由で送信する
しかし、カスタムクラスの変更を追跡して、すべての変更が追跡され、webserviceコールによって送信されるようにしたいのですが?
私はいくつかのデータを提供するWebサービスを持っています。そのデータはDataGridに表示され、変更される可能性があります。私はすべての変更を追跡し、変更されたデータだけをwebservice経由で返信したいと考えています。 EntityFrameworkやPOCOのようなものはありますか?それとも自分の作業単位パターンを実装する必要がありますか?
クライアント側で複数のオブジェクトを変更していて、どのオブジェクトが変更されたかを把握したい場合は、変更されたオブジェクトの追跡をクライアントに依頼し、バルクでWebサービスに送信します。そして、それは私の質問でした。どのようにクライアントが適切な方法で適切なコーディング方法で変更されたオブジェクトを追跡する責任を負うことができますか?私は、Save()が呼び出されたときに変更されたデータをワイヤを介して送信する作業単位の実装について考えました。それは解決策ですか? – kkris1983
@ kkris1983:あなたのEFコンテキストがクライアント側で行われた変更を追跡し続けるようにしたいと思ったように、質問がどのように表現されたかのように聞こえました。クライアント側の変更を追跡する方法は、EF/WCFよりもクライアント側のフレームワークに依存します。たとえば、エンティティをJavascriptオブジェクトとして解決している場合は、変更された各オブジェクトに「IsChanged = true」プロパティを簡単に追加できます。 Silverlightを使用している場合は、辞書を使用して変更された各オブジェクトを追跡することができます。 – StriplingWarrior
辞書やその他のコレクションの変更を保存する際の問題は、WebServiceから、他のタイプのオブジェクトのコレクションを含むオブジェクトのコレクションを持つ複合オブジェクトを受け取ることです。したがって、最も深いオブジェクトに変更が加えられた場合、チェーン内のすべてのオブジェクトを含むオブジェクトをダーティとしてマークする必要があります。編集が完了したら、すべてをパラメータとしてWebサービスメソッド呼び出しに渡す必要があります。どのように変化のチェーンを追跡するのですか? – kkris1983