Rotationオブジェクトの複数のリストへの参照を含むクラスがありますAdvert。Rotationこれらを保持する型のプロパティを持つ実装を希望しますList<List<Advert>>が、これをサポートする NHibernate マッピングを思い付くことができません。
Rotationデータベース スキーマでは、との間の多対多の関係は、次の列をAdvert持つテーブルとして表されます。RotationAdvert
RotationIDAdvertIDVariant(「水平位置」/外部リスト内のインデックス)Position(「垂直位置」/内部リスト内のインデックス)
私が見つけた最善の解決策は、固定数のList<Advert>型付きプロパティを実装し、それぞれの要素でRotationマッピングを拡張することです。<list>
<list name="Variant1" table="RotationAdvert" where="Variant = 1">
<key column="RotationID"/>
<index column="Position"/>
<many-to-many class="Advert" column="AdvertID"/>
</list>
<list name="Variant2" table="RotationAdvert" where="Variant = 2">
<key column="RotationID"/>
<index column="Position"/>
<many-to-many class="Advert" column="AdvertID"/>
</list>
etc...
ただし、これには固定数のバリアントを指定する必要があり、これは避けたいと思います。
他のオプションは何ですか? RotationVariantデータベースに新しいテーブルを作成せずに、クラスをモデルに絞り込んで、どうにかしてList<RotationVariant>プロパティをマップできますRotationか? または、それぞれの ID を保持するためだけに、データベースに新しいテーブルを作成する必要がありますRotationVariantか?