Дополняет ответ Диего ..
Вы можете установить параметр table
для каждого генератора, но IMO приводит к ненужному количеству таблиц только для хранения идентификаторов.
Я бы, вероятно, рекомендовал использовать одну строку для каждой сущности (в той же таблице). С дополнительными параметрами вы можете настроить алгоритм HiLo, и он будет блокировать только необходимую строку. У вас есть разные семена для каждой сущности. В FluentNH это было бы что-то похожее на:
Id(x => x.Id, "Id")
.GeneratedBy.HiLo("IdsTable", "id", "20",
p => p.AddParam("where", "table = 'mappedent'"));
Несмотря на это, вы также можете обойтись без дополнительного параметра where
и просто установить другой столбец (что позволяет иметь разные типы идентификаторов даже в БД). Тем не менее, это будет беспокоить вас, если у вас есть большое количество сущностей (из-за ограничения числа столбцов в БД). Помните также, что каждый объект, запрашивающий диапазон идентификаторов, блокирует все остальные, что может привести к тупикам в некоторых ситуациях.
Надеюсь, это поможет!
С уважением,
Филип