У меня есть две сущности, Роль и Разрешение , каждая со своей таблицей в базе данных и правильно настроенной генерацией идентификатора с алгоритмом HiLo.Это отлично работает.Однако в базе данных есть еще одна таблица, ROLE_PERMISSION_ASSIGNMENT , просто содержащая внешние ключи для двух вышеупомянутых таблиц, связывающих сущности вместе.Эта таблица не имеет аналога сущности в моем приложении.
Отображение для сущности Role выглядит следующим образом:
public class RoleMap : ClassMap<Role>
{
public RoleMap()
{
Table("\"ROLE\"");
LazyLoad();
Id(x => x.Id, "id").GeneratedBy.HiLo("hilo", "hilo_role", "50");
Map(x => x.Name).Column("name");
HasManyToMany<Permission>(x => x.Permissions)
.Table("\"ROLE_PERMISSION_ASSIGNMENT\"")
.ParentKeyColumn("fk_id_role")
.ChildKeyColumn("fk_id_permission")
.Cascade.None();
}
}
Поскольку у меня нет сущностидля таблицы ROLE_PERMISSION_ASSIGNMENT я не могу указать способ генерации ее идентификатора и, следовательно, при сохранении роли (содержащей некоторые разрешения ) в БД, онане удается создать соответствующие записи в ROLE_PERMISSION_ASSIGNMENT , потому что он не предоставляет первичный ключ.
Есть ли способ сообщить NHibernate для генерации идентификаторов для ROLE_PERMISSION_ASSIGNMENT также салгоритм HiLo?
Большое спасибо.