0

現在、n層シナリオでSTEを使用しようとしています。オブジェクトのグラフを取得したり、オブジェクトを更新したりできるWCFサービスと、そのグラフの側面を編集して変更をサービスに送信できるクライアント(WPF)アプリケーションがあります。

私の問題はこれです。私が取得するオブジェクトのグラフは非常に大きく(画像を含むこともあります)、更新は最小限です。ただし、更新を送信すると、オブジェクト間の関係により、グラフ全体がサービスに送信されます。

例えば; Customer / Order / OrderDetailシナリオが与えられた場合:注文と関連するOrderDetails(3レベル)で顧客を取得します。次に、単一のOrderDetailを更新して、数量を変更します。OrderDetailオブジェクトを取得するWCFメソッドを介して更新するOrderDetailを送信しますが、シリアル化はOrderを介してリレーションシッププロパティに従って顧客に送信し、変更されたOrderDetailだけでなく、すべてのOrders、OrderDetails、および顧客をシリアル化します。

サービス呼び出しパラメーターがシリアル化されたときにこれらすべてが返されるのを防ぎ、関係に従わずに更新するオブジェクトを返すにはどうすればよいですか?

私がSTEについて見つけることができるすべての例(そしてまだ多くはありません)は、実際にすべての関連オブジェクト(オンラインのブログ/投稿の例など)を渡すように設計されているようです。

4

2 に答える 2

1

ご存じのように、ObjectStateManager は、特に n-tied アプリケーションでオブジェクトのステータスを管理し、特定のオブジェクトを更新するには、以下のメソッドを使用します。

  1. 最初にコンテキストにアタッチします
  2. ChangeObjectState - EntityState の列挙を受け入れます: 追加/変更/削除
  3. 変更内容を保存

リンクを確認してください: http://msdn.microsoft.com/en-us/magazine/ee321569.aspx

于 2012-06-29T03:07:41.260 に答える
0

すべてのデータを渡したくない場合は、より小さなセットで作業する必要があります。したがって、デフォルトで顧客+そのすべての注文+すべての注文の詳細を取得する場合、それはワーキングセットです。単一の注文作成操作のみを使用して、その1つとその詳細のみを取得する場合。

それはどういうわけか集合ルートに関連しています。順序なしで単一のアイテムを操作することはあまり意味がないため、順序は注文アイテムの集約ルートです。しかし、顧客なしでOrderを使用することはおそらく可能ですよね?

于 2011-03-14T17:52:04.693 に答える