4

私はDDDとNHibernateが初めてです。

私の現在のプロジェクトでは、値オブジェクトを含むエンティティ Person があります。たとえば、Address としましょう。今日は、これでいいです。しかし、いつの日か、私の値オブジェクト (この場合は Address) がエンティティーにならなければならないという要件が生じるかもしれません。

これを DDD 方式でモデル化する前に、よりデータ中心のアプローチで、ID を持つテーブル Person と、別のテーブル Address があり、その PK は実際には FK であり、それは Person の ID (つまり、 、1 対 1 の関係)。

値オブジェクトをコンポーネントとしてマップすると、その値がエンティティ テーブルの列としてマップされることを読んでいます (したがって、1 対 1 の関係はありません)。

私の考えでは、必要に応じて代理キーを Address テーブルに追加するだけで、それが Entity になるというものでした。

NHibernate を使用してこれをどのように設計すればよいですか? Address オブジェクトをエンティティにする必要がありますか?

申し訳ありませんが、私の質問が明確かどうかさえわかりません。ここで本当に迷っています。

4

2 に答える 2

4

私たちが構築しているシステムでは、Value-Object を別々のテーブルに配置します。私が知る限り、NHibernate ではidオブジェクトに を追加する必要がありますが、これを無視して、オブジェクトをシステム内の値オブジェクトとして扱います。おそらくご存じのとおり、Value-Object は追跡する必要のないオブジェクトであるためid、オブジェクト内の を見落とすだけです。これにより、データベースを自由にモデル化し、ドメイン モデルを自由にモデル化できます。

于 2009-08-26T06:55:11.080 に答える