0

私は、リポジトリと作業パターンの単位を持つエンティティフレームワークを使用してMVCプロジェクトで作業します 私はこのアクションの例のような編集アクション(マスター詳細)で可変長のコレクションを編集しようとしていますhttp://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc-part-1なぜエンティティのフレームワークエンティティのマスターの詳細エンティティの編集

私の問題は、子コレクションDBテーブルの子コレクションの行を複製して古いものの外部キーをnullに設定し、マスターエンティティを正常に変更するためのフォームを送信するたびに発生します。 マスターエンティティのエンティティ状態がデタッチされていることを確認します(子コレクションもデタッチされます)。

私はループをスローする子コレクションを回避し、その状態を変更または追加または削除するようにしました。しかし、私はこの問題を自動的に検出するために、この問題を解決するか、エンティティ状態をdeatachedに変更しないかを知る必要があります。

おかげ

答えて

0

EFコンテキストは、クライアントが行った変更内容を知っていないとEFは、これらの変更を見つけるためにメカニズムを持っていません。あなたはそれを知っているように、オブジェクトグラフ内の各エンティティの

  • 手動で設定された状態(official solutionで回避されていません):このシナリオを処理するための唯一の2つの方法があります。
  • まず、エンティティグラフをデータベースからロードし、TryUpdateModelを使用して、hereのように新しい状態と古い状態をマージします。
+0

私はTryUpdateModelをうまく使用しようとしましたが、DBテーブルの子ローを複製します。更新アクションが実行されるたびに、子コレクションDbテーブルの重複行が実行されます。正しい親外部キー値を持つ行。 –

+0

エンティティに子をロードしていますか? –

+0

yes with includeメソッド –

関連する問題