STEを使い始めた MVC2 アプリがあります。更新がどのように機能するかについての明確化を探しています。
バックグラウンド:
関連カテゴリ エンティティと関連投稿/コメント エンティティを含むブログ エンティティがあるとします。MVC では、メインのブログ エンティティとカテゴリを含むビューをレンダリングしていますが、関連する投稿はレンダリングしていません。ブログ エンティティをサーバーにポストバックすると、関連するカテゴリは表示されますが、サーバーにシリアライズされるエンティティの投稿は表示されません (ビューに表示されていないため)。また、ブログ エンティティの変更状態は「追加済み」です。
次に、このブログ エンティティを呼び出して更新を実行しようとしApplychanges()
ましSaveChanges()
たが、投稿との FK 関係と、データベースに関連する投稿があるが、返信しているエンティティに関連付けられていないという事実のために失敗します。
さらにテストを行って... サーバーに接続しているときに (状態 = 変更なし)、ブログ エンティティの現在のインスタンス (関連するすべての FK エンティティを含む) を取得し、プロパティを変更 (状態 = 変更済み) して更新すると、期待どおりに動作します。 .
私の質問: ビューにレンダリングされていない関連エンティティがあり、そのためブログ エンティティでポストバックされない場合、更新は機能するはずですか?
ブログ エンティティが「変更済み」ではなく「追加済み」ステータスのポスト バックを取得するのはなぜですか? 変更されたすべてのエンティティに対して「変更された」変更状態が返されると想定し、ApplyChanges/SaveChanges()
変更されたアイテムのみを呼び出すと更新が試行されるため、関連するすべてのエンティティは必要ありません。
クライアントからエンティティを直接渡すことができるようにする必要がありますか、ApplyChanges()/SaveChanges()
またはエンティティをサーバーにポストバックし、データベースから既存のコピーを取得し、そのコピーに変更を適用して、既存のオブジェクトをポストバックする必要がありますか?