当我开始使用nhibernate时,我只是做了我一直使用的递增int。既然我对nhibernate和工作单元有了更多的了解,我觉得增加整数并不是一个好的方法(它们打破了工作单元)。
我想知道我应该使用什么作为主键?我应该使用GUID还是HILO?
我喜欢GUID问他们是独一无二的,但我不喜欢他们如果你开始获得一个巨大的数据库就可以占用很多空间。
我没有使用HILO,但我认为你需要一个特殊的hilo表来使它工作得很糟糕。
人们的想法是什么?
最后,当我有时间时,我想将旧代码转换为使用这种新的PK数据类型,这样我就可以开始更好地利用工作单元。
将ok数据转换为PK的最佳方法是什么?我使用的两种数据类型中哪一种比另一种更容易转换?
答案 0 :(得分:0)
GUID应该用于需要跨数据库复制的情况。而不是标准的GUID,它会弄乱您的索引。新罕布什尔州有一个Guid.Comb。
至于HILO - 仅用于配料一次。不喜欢使用额外表格的想法。之后转移到自然键。
Basicaly我建议使用Guid.Comb。
以下是关于这些内容的一些解读:
Using The Guid.Comb Identifier Strategy