nhibernate中人类可读id的最佳策略

时间:2010-04-26 13:06:55

标签: nhibernate

实现人类可读数字的最佳方法是什么,

目前已将Identity设置为代理键。

一直在考虑身份种子,但这会导致差距。

如果我要在事务范围内生成,那么并发会产生影响吗?

宁愿避免使用DBCC CHECKIDENT触发器。

感谢。

2 个答案:

答案 0 :(得分:2)

如果你有

  • 顺序ID的硬性要求
  • 已经是不符合要求的代理密钥,并且不想使用序列或身份

然后你需要自己实现它。

我很可能会编写一个id-Generator来创建唯一的顺序ID。这必须使用自己的会话将最新的id存储在数据库中。如果您只有一个进程,那么您可以在内存中创建它们。

答案 1 :(得分:1)

基本上,NHibernate有两个最佳的id生成器策略:guid.combhilo/seqhilo(后者在支持序列的RDBMS上可用)

hilo生成的整数ID比GUID更具可读性,因此在这种情况下您可以选择。

不要担心差距;它们并不重要。