NHibernate HiLo算法重新使用hi作为lo?

时间:2011-08-16 12:22:50

标签: nhibernate fluent-nhibernate nhibernate-mapping

我正在使用NHibernate 3.1和FluentNHibernate 1.2.0.712。

我们使用HiLo生成器生成ID - 使用标准设置,但max_lo设置为100(默认为1000)。

我们的映射在ctor中都有这一行:

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

Hovewer,当我们用新的SessionFactory开始新鲜时,第一个项目被保存 - 让我们说下一个hi是12它得到Id 1212(我原本期望1200或1201)。这是预期的行为,还是我错过了配置的一些重要部分?

我尝试使用默认值(“1000”)作为max_lo,但是上面会导致12012 - 仍然不是我所期望的。

1 个答案:

答案 0 :(得分:0)

我通读了nhibernate代码库。这显然是预期的行为 - 对于初始集,它'时钟'(超出我的原因 - 但可能与保持与hibernate的奇偶性有关(因为它具有完全相同的注释: - ))。

对于所有后续增量 - 所有增量都按预期执行。

所以,关闭这个问题。