У меня есть класс Rotation
, который содержит ссылки на несколько списков объектов Advert
. Я предпочел бы реализацию, где Rotation
имеет свойство типа List<List<Advert>>
, чтобы удержать их, но я не могу придумать отображение NHibernate, поддерживающее это.Как мне отобразить Список <Список <EntityClass>> в 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
? Или мне нужно создать новую таблицу в базе данных, просто чтобы сохранить идентификатор для каждого RotationVariant
?
Спасибо за ссылку, которая, похоже, поддерживает вывод, который я достиг.Я нашел подобное заявление о NHibernate в одном из сообщений блога Айенде. В моем конкретном случае я закончил использование «Словаря» вместе с дополнительным неприменимым свойством, которое позволяет мне делать такой выбор, который мне нужен. Это позволяет мне хранить базу данных так, как она есть, - никаких новых сущностей не вводили. –
Yup, я использую словарь, который не поддерживается, чтобы взаимодействовать с несколькими моими коллекциями. Кажется, отлично работает для crud обновлений для словарных статей тоже. – Marc