Person
オブジェクトをマップしたいと思います。2つの1対多の関係をNHibernateの1つのコレクションにマッピングする
私はPersonId
,FatherId
、MotherId
フィールドなどのフィールドを持つPeople
テーブルを持っています。 2つの最後の参照PersonId
は非常に同じテーブルにあります。私のドメインモデルで
私は親のPersonId
へのFatherId
またはMotherId
を設定した他のすべてのPerson
とChildren
読み取り専用のコレクションを持っているしたいと思います。そうする
一つの方法は、FathersChildren
とMothersChildren
コレクションにそれぞれFatherId
とMotherId
外部キーを使用して、親の性別に応じて、Children
ゲッターでそれらのいずれかを返す2 HasMany
とマップを使用することです。しかし、それは私のドメインオブジェクトをちょうど醜いものにしてしまいます。
これを解決する方法はありますか。私は流暢または息子のいずれかに満足しています。
ちょっとしたアイデア:IGetter/ISetterの実装を使ってリストを連結したり、性別に応じてリストを設定したりして、FatchersChildrenとMothersChildrenを仮想プロパティとしてマップすることができます。これはあなたが必要とするいくつかの余分なコードです – Firo