NHibernate-导入大量数据的Id生成策略

NHibernate-导入大量数据的Id生成策略,nhibernate,id-generation,Nhibernate,Id Generation,我有一个使用序列id生成器的数据库。我需要对大量数据执行一次性迁移。我使用NHibernate来完成这项工作,因为迁移逻辑相当复杂 另外,我不希望这个操作持续很久,所以我想使用批处理 是否有任何Id策略可以使用序列作为输入,在不与数据库联系的情况下生成所有需要的Id,然后在最后更新序列以允许其他应用程序正常使用 执行迁移时不会运行其他应用程序。我认为HiLo非常适合您的要求 您可以在此处找到HiLo生成器文档: 你好吗?有一个大的lo集合?虽然我不知道你将如何改变这个正常的应用程序运行没有重建会

我有一个使用序列id生成器的数据库。我需要对大量数据执行一次性迁移。我使用NHibernate来完成这项工作,因为迁移逻辑相当复杂

另外,我不希望这个操作持续很久,所以我想使用批处理

是否有任何Id策略可以使用序列作为输入,在不与数据库联系的情况下生成所有需要的Id,然后在最后更新序列以允许其他应用程序正常使用


执行迁移时不会运行其他应用程序。

我认为HiLo非常适合您的要求

您可以在此处找到HiLo生成器文档:

你好吗?有一个大的lo集合?虽然我不知道你将如何改变这个正常的应用程序运行没有重建会话工厂。。。尽管如果它单独运行,这可能不是问题。HiLo不会像序列那样生成后续值,也不会更新序列。我已经基于sequence generator实现了我自己的解决方案-它联系数据库将sequence值设置为current+500,其余类似于HiLo-如果我们已经使用了池,则递增一个变量并请求一个新值。酷,我错过了这一部分。我很长一段时间没有使用序列或标识策略,所以我只是忘记了对于HiLo,序列中的一个增量对于多个对象来说已经足够了。这就是HiLo的威力:)还有SeqHiLo策略使用序列而不是表来保存高值,但这也不是一个选项。