2009-07-18 15 views
1

質問のディランの回答'Using The Repository Pattern, Is It Best To Save Parent and Children Objects Together Or Separately?'によれば、リポジトリは集約全体(親と子)を保存します。集計(親と子)をリポジトリに保存する方法

実際にストアドプロシージャ(使用している場合)にコード化されていますか?

class Country 
{ 
    List<City> cities; 
    ... 
} 

とリポジトリスニペット:

public Save(Country country) 
{ 
    ... 

    ICityRepository cityRepository = new CityRepository(); 

    foreach (City city in country.Cities) 
    { 
     cityRepository.Save(city); 
    } 

    ... 
} 

か、市の子どもたちのリストを親クラスの国を持つ、子リポジトリにも...例えば

を呼ぶだろう良い選択肢がありますか?

また、上記の例のように子リポジトリを呼び出すと、多くの子がある場合、パフォーマンスに大きな影響がありますか?

答えて

0

都市オブジェクトをxmlとして国のストアドプロシージャに渡すことができます。

次に、それらをすべて修正するために1つの更新/挿入/削除クエリが必要です。

1

国が集合ルートである場合は、そのように見えますが、都市のための別個のリポジトリを持つべきではありません。リポジトリは集約ルートにのみ必要です。

したがって、ICityRepository/CityRepositoryを忘れて、Cities自体を国のレポジトリに保存してください。

関連する問題