2012-08-02 57 views
0

当我开始使用nhibernate时,我只是做了我一直使用的递增int。现在我对nhibernate和工作单位有了更多的了解,我觉得递增整数并不是一个好办法(他们打破了工作单位)。PK数据类型选择Nhibernate?

我想知道我应该使用什么作为主键?我应该使用GUID还是HILO?

我喜欢GUID问他们是独特的,但我不喜欢他们可以占用大量的房间,如果你开始得到一个巨大的分贝。

我还没有使用HILO,但我认为你需要一个特殊的hilo表来使它工作起来有点尴尬。

什么是人的思想。

最后,当我有时间时,我想将旧代码转换为使用这种新的PK数据类型,以便我可以开始更好地使用工作单元。

将ok数据转换为PK的最佳方法是什么?正在使用我谈到的比其他数据类型更容易转换的2种数据类型之一?

回答

0

GUID应该用于需要跨数据库复制的情况。而不是标准的GUID,它会混乱你的索引。新罕布什尔州有一个Guid.Comb。

至于HILO - 只用于配料一次。不喜欢使用额外的表的想法。之后,移到自然键。

基础我建议使用Guid.Comb。 下面是一些阅读过这样的事:
Using The Guid.Comb Identifier Strategy

+0

当我的意思是GUID我指的是一个是数据库,所以我认为这是Guid.Comb。 – chobo2 2012-08-02 21:19:32