Алгоритм NHibernate HiLo с повторным использованием hi as lo? - PullRequest
1 голос
/ 16 августа 2011

Я использую NHibernate 3.1 с FluentNHibernate 1.2.0.712.

Мы используем генератор HiLo для генерации идентификаторов - со стандартными настройками, кроме max_lo, установленным в 100 (по умолчанию 1000).

Все наши отображения имеют следующую строку в ctor:

Id(m => m.Id)
    .GeneratedBy.HiLo("100");

Hovewer, когда мы начинаем заново с новой SessionFactory, и первый элемент сохраняется - скажем, следующий привет - 12, он получает Id 1212(Я бы ожидал 1200 или 1201).Это предполагаемое поведение, или я пропускаю какую-то важную часть конфигурации?

Я пытался использовать значения по умолчанию ("1000") в качестве max_lo, но тогда приведенное выше приведет к 12012 - все еще не совсем то, чтоЯ ожидаю.

1 Ответ

0 голосов
/ 06 сентября 2011

Я прочитал кодовую базу nhibernate. Это, по-видимому, предполагаемое поведение - для начального набора оно «перекрывается» (по не зависящей от меня причине), но, вероятно, как-то связано с сохранением четности в спящем режиме (поскольку этот комментарий имеет тот же комментарий: -)).

Для всех последующих приращений - все работает как положено.

Итак, закрываем этот вопрос.

...