使用HNibernate HiLo生成器以编程方式获取唯一的整数

时间:2012-10-09 13:24:19

标签: nhibernate hilo

我需要生成一个唯一的整数,用于识别外部系统的订单。我在应用程序中使用NHibernate HiLo生成器,所以我可以通过编程方式访问生成器以使其返回一个唯一的整数吗?我不需要将它存储在任何数据库密钥中。我只想使用生成唯一整数的NH功能。

我要在HiLo表中添加一列,我只用于这个唯一的数字序列而不是任何真正的数据库密钥。例如,假设我在hibernate_unique_key表中添加了一列“Foo”。

我可以做一些有效的事情:

int n = GetNextId("Foo");

我只是传递了这个列的名字?

1 个答案:

答案 0 :(得分:1)

您应该能够实例化TableHiLoGeneratorSequenceHiLoGenerator,配置它并在需要值时调用Generate

致电Generate()时,您可以为第一个参数传递session.GetSessionImplementation(),为第二个参数传递null

现在,请记住,如果您没有真正存储这些数字,那么使用数据库生成它们可能不是最佳选择。 GUID实际上是唯一的,可以更容易地生成128位数字。