2011-08-21 4 views
5

WCF RIAサービスに次の問題があります。テーブルお客様とテーブルアドレスがあります。顧客は0 ... n個のアドレスを持つことができます。顧客を編集するためのフォームがあり、アドレスを表示するDatagridがあります。子ウィンドウのアドレスを追加/編集するには、を追加します。/を追加します。特定のエンティティのRejectChanges

問題は、ユーザーが編集をいつでもキャンセルできることです。これは除い問題ではありません:あなたは新しい顧客を作成、あなたがその顧客にアドレスを追加する場合は、アドレスを編集しますがには編集それをキャンセルしたいしたいです。

  • RejectChangesをコンテキストに適用することはできません。これは、顧客とのアドレスを消去するためです。
  • 別のコンテキストを使用することはできません。これは、外部キーの関係を確立できないためです。

あなたはどうしたらそれを解決できますか?

答えて

6

エンティティは、このシナリオをサポートするためにIRevertibleChangeTrackingを実装しています。明示的に実装されているので、それをキャストする必要があります。次のコードは動作します。

((IRevertibleChangeTracking)address).RejectChanges(); 
+0

小さなスペルミスの場合にはインタフェース名(IRevertibleChangeTracking)http://msdn.microsoft.com/en-us/library/systemで編集した場合に取り組んでいます.componentmodel.revertiblechangetracking%28v = VS.95%29.aspx –

+0

ありがとうございました。あなたは一貫してそれが間違っていると私は信じますか? :) –

+0

非常に役に立ちました、ちょうど私が必要とした情報。ありがとう。 – peter

0

それはではなく、新しい..

+0

新しいの場合は、エンティティを再度デタッチする必要はありません。 – LueTm

関連する問題