Таблица связей между многими и многими не вставлена ​​в NHibernate - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть следующие классы:

Hotel: ID, ..., IList<Photo> Photos
Photo: ID, Url

и в базе данных соответствующие таблицы "Отели" и "Фотографии" и промежуточная таблица ссылок, которая содержит идентификаторы:

HotelPhotos: HotelPhotoID, HotelID (linked to PK HotelID from Hotels table),  PhotoID (linked to PK PhotoID from Photos table)

Файл конфигурации для класса отеля:

...other fields mapped
<bag name="Photos" table="TravelRoutePhotos" inverse="true" cascade="all" lazy="false">
   <key column="TravelRouteID" />
   <many-to-many class="TravelAssistant.Model.HelperModels.Feedback.Photo" column="PhotoID"/>
</bag>

Каждый раз, когда я добавляю / обновляю отель с фотографией, я правильно получаю вставленные данные Фото и Отель, но таблица HotelPhotos остается пустой.Я попытался сбросить сессию после обновления, попытался установить "bag" в idbag в файле конфигурации, удалив "inverse" из файла конфигурации, но все же получил тот же результат.

Может кто-нибудь помочь мне, пожалуйста?

Тамас

РЕДАКТИРОВАТЬ Класс HotelPhoto не существует;только таблица ссылок HotelPhotos.

1 Ответ

0 голосов
/ 25 ноября 2011

Непонятно, правильно ли вы редактировали при изменении сопоставления, но из вашего кода в том виде, в каком оно есть, ваша запись сопоставления должна быть

<bag name="Photos" table="HotelPhotos" inverse="true" cascade="all" lazy="false">

Вы также должныВы используете hotel.Photos.Add(photo); или подобное.У вас определенно есть правильное представление о вашем отображении, и вам не нужно указывать ссылку на Photo.hbm.xml, если вы не хотите, чтобы коллекция Hotels использовалась в вашем классе Photo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...