私はDDDとNHibernateを初めて使いました。NHibernate上のバリューオブジェクトのための別のテーブル
私の現在のプロジェクトでは、値オブジェクトを含むエンティティPersonを持っていますが、Addressとしましょう。今日、これは問題ありません。しかし、ある日、私の価値オブジェクト(このケースではAddress)がエンティティになる必要があるという要件があります。
これをDDDの方法でモデル化しようとする前に、よりデータ中心のアプローチでは、Idを持つテーブルPersonと、実際にFKだった別のテーブルAddressを持っていました。 Person(すなわち、1対1の関係)。
バリューオブジェクトをコンポーネントとしてマップすると、その値がエンティティテーブルの列としてマップされます(つまり、1対1の関係はありません)。
私の考えは、必要なときに私のアドレステーブルにサロゲートキーを追加するだけで、エンティティになりました。
NHibernateを使用してこれをどのように設計する必要がありますか? Addressオブジェクトを既にエンティティにする必要がありますか?
申し訳ありませんが、私の質問が明確であれば、私は本当にここで失われています。
ここでも同じアプローチです。 dddはオブジェクトにidというプロパティを持たせるべきではないことを要求しません。値オブジェクトはアイデンティティーのないオブジェクトです。 –
Hmmm、私はそれを隠すように、保護されたIDを作成することはできますが、NHibernateはまだそれを表示し、マップすることができますか? –
しかし、値オブジェクトテーブルに繰り返し入力することになります。それを避ける方法は? – Seiti