WCFサービスを公開するアプリケーションを開発しています。私はDALでEntity Framework 4.1を使用しています。問題は、いくつかのエンティティを読み込むときです(Orderを持つCustomerにOrderDetailがあるとします)。それをロードした後、Customer、Order、OrderDetailオブジェクトをいくつか変更します(いくつかの新しいオーダーが追加され、既存のオーダーが削除/更新されます)。オブジェクトグラフをWCFサービスに送信して、次のように更新します。今はchangetrackingがないのでWCF、Entity Framework 4.1およびエンティティの状態
Customer oCustomer;
using(var context = new MyContext) //MyContext is dbContext
{
oCustomer = context.Include("Order.OrderDetail").Find(1);
}
oCustomer.Name ="blah blah";
Order oOrder1 = oCustomer.Order.Where(obj=>obj.Id == 2);
oOrder1.Description = "blah blah";
oOrder1.OrderDetail.Quantity = 10;
Order oOrder2 = new Order { ... } //properties of Order are set.
oCustomer.Order.Add(oOrder2);
oCustomer.Order.Remove(context.Order.Find(1));
ServiceClient client = new ServiceClient();
client.SaveCustomer(oCustomer);
は、今私は、私が注文を除去して、変更されたか知りませんサーバー側でお客様の更新ObjectGraphを受信したとき。どの注文を削除し、どの注文を変更するのかを決定するにはどうすればよいですか? Entity Framework 4.1のオブジェクトグラフの変更を追跡する方法はありますか?
注:以前はこの問題を解決したセルフトラッキングエンティティを使用しましたが、WCFサービスはJavaクライアントアプリケーションでも使用されるため、STEを削除する必要がありました。だから、STEは私の選択肢ではありません。
ガイダンスをありがとう。しかし、私はすべての答えを読んでいます。私は、私の質問のいくつかがある意味で重複していることに同意します。私はそれをより良いとエレガントなソリューションを追求するためにしなければならなかった。 – Baig