Rotation
オブジェクトの複数のリストへの参照を含むクラスがありますAdvert
。Rotation
これらを保持する型のプロパティを持つ実装を希望しますList<List<Advert>>
が、これをサポートする NHibernate マッピングを思い付くことができません。
Rotation
データベース スキーマでは、との間の多対多の関係は、次の列をAdvert
持つテーブルとして表されます。RotationAdvert
RotationID
AdvertID
Variant
(「水平位置」/外部リスト内のインデックス)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
か?