1
  1. エンティティFooとBarは両方とも集合ルートです
  2. Fooリファレンスバー
  3. SomeServiceは次のことを行います。FooRepository.FindId()を呼び出して、Foobのインスタンスを取得します。Fooインスタンスを変更し、Fooインスタンスによって参照されるBarインスタンスにも変更を加えますc。FooRepository.Update(Foo)を呼び出して、Fooインスタンスに加えられた変更を永続化します

質問:1。Foo-> Barを知っている場合、FooRepository.FindId()はFooインスタンスとそれが参照するBarインスタンスをどのように構築しますか?(EntityFrameworkが使用され、EntityFrameworkがエンティティとその依存関係を自動的に構築することを理解していると仮定します)2。FooインスタンスがBarインスタンスを参照する場合、FooRepository.Update()はBarインスタンスに加えられた変更も保持する必要がありますか?答えがNOの場合、Entity Frameworkがデータベースアクセスに使用されるテクノロジであると仮定すると、SomeServiceはリポジトリ(またはより正確にはEntityFramework)にBarの変更を無視するようにどのように指示しますか?

4

2 に答える 2

2

Vaughn Vernon による「Effective Aggregate Design 」を読んだ後、集計の設計についての洞察が得られました。

原則として、Bar は ID で参照します。ブー状態を変更する場合は、BarRepository から取得します。

于 2013-01-31T11:57:54.640 に答える