データベースから生成された RIA サービスと EF5 EF モデルを使用します。
親オブジェクトをクラス A と呼びます。クラス A には ClassB のコレクションがあります。ClassB には ClassC のインスタンスがあります。
したがって、私の見解では、ユーザーがいくつかのデータを入力すると、デフォルトのワークフローはそれらのために ClassB を大量に生成します。ただし、実際に作成するものを選択できるようにしたいと考えています。
そこで、クラス A のコレクションに ClassB を追加する実際のアクションへのデリゲートを使用して、新しい ClassB アイテムを保持するラッパーを作成します。
したがって、デフォルトでクラス A が 2ClassB を持つようになっているが、最初のクラスの選択を解除してから、必要なアクションを実行して変更を保存すると、クラス A のクラス B のコレクションには 1 つの ClassB のみが正しく含まれていることに気付きますが、 context 両方の日記アイテムが保存されます。
私が気付いたのは、ClassC を ClassB に追加すると、ClassB が ClassB の Class Cs コレクションに自動的に追加されるということです。
したがって、コンテキストでsavechangesを呼び出すと、ClassBを1つだけClassAに追加しましたが、ClassCに追加されているため、両方が保存されます
ClassC は本質的にルックアップ テーブルにのみマップされるため、これを編集したり変更を保存したりする必要はなく、CRUD 機能も実装していません。
また、ClassA には ClassB のインクルードを含むメタデータ クラスがあり、ClassB には ClassC をインクルードするためのメタデータがありますが、Class C のメタデータ クラスはありません。
この問題を回避する方法はありますか?