У меня есть три сущности в моей музыкальной БД: Видео , Альбом и Жанр . И видео, и альбомы могут иметь несколько жанров, поэтому я связываю их с ассоциацией многие-ко-многим через общую таблицу.
Вот что у меня в БД:
Videos: Id (int)
Albums: Id (int)
Genre: Id (int)
Item_Genres: (table for many-to-many mapping)
Id (int)
objectType (here I have "album" for albums and "video" for videos)
objectId (id from either Albums or Videos table)
genreId (Id of the appropriate genre)
У меня проблема с добавлением нового Жанра к моему Видео .
Когда я делаю
videos.Genres.Add(genre);
nHibernate создает строку в таблице Item_Genres с правами genreId и objectId , но с пустым objectType . Как я могу это исправить?
Вот мое отображение для Видео Класс:
<set name="Genres" table="item_genres" lazy="true" where="objectType = 'video'">
<key>
<column name="objectId" not-null="true"/>
</key>
<many-to-many class="Repositories.Entities.Genre">
<column name="genreId" not-null="true"/>
</many-to-many>
</set>
С его помощью я могу без проблем запросить Жанры для Видео с БД, проблема только с добавлением нового.