Как создать сопоставление «один ко многим», в котором есть мостовая таблица посередине?
В основном у меня есть 3 таблицы: Items, Tags и TagsToItems.
Каждый элемент может иметь много тегов, как определено в таблице TagsToItems. Как правильно настроить это сопоставление с помощью Fluent NHibernate?
Я играл с HasMany
, но так и не понял, как это работает с бридж-столом.
HasMany(x => x.Tags).Table("TagsToItems").KeyColumn("ItemId");
Моя последняя попытка решить эту проблему выглядит так:
HasManyToMany(x => x.Tags)
.AsBag()
.Table("TagsToItems")
.ParentKeyColumn("ItemId")
.ChildKeyColumn("TagId")
.Cascade.All()
.Inverse();
Однако это вызывает ошибку:
Initializing[Namespace.Item#11] — не удалось лениво инициализировать набор ролей: Namespace.DataAccess.NHibernate.Entities.Item.Tags, сеанс или сеанс не был закрыт.