私はこのようなもののいくつかに頭を包むのに本当に苦労しています。私が苦労している例を挙げましょう。
アプリの DAL として Linq-2-Sql を使用し、Rob Conery の MVC Storefront サンプル アプリで使用される IRepository パターンを使用しています。
私のドメインには、住所モデルのコレクションを持つ顧客モデルがあります。私の UI には、ユーザーが顧客に新しい住所を追加できるボタンがあります。これにより、住所エディターが開き、すべての情報を入力できます。
次は何が起こる?住所はデータベースに保存され、顧客オブジェクトのリストに追加されますか? リストに追加されるだけで、Customer オブジェクトが保存されるまで更新されませんか? ユーザーがアドレスを削除したい場合はどうすればよいですか? データベース内のアドレスを削除してから、リストから削除しますか? それとも、必要なすべての削除/追加を行うだけで、毎回データベースからすべてをダンプし、Customer.Addresses コレクションにあるもので更新しますか? ここで正しい流れは何ですか?
アドレスのコレクションは、次のような呼び出しによってリポジトリ経由でのみ更新される必要があります。
public void AddAddressToCustomer(Customer c, Address a)
{
//validate and save address to db
//add the newly saved address to the Customer Object
}
ヘルプ...