0

当我开始使用 nhibernate 时,我只是做了我一直使用递增 int 的事情。现在我对 nhibernate 和工作单元有了更多的了解,我觉得增加 int 并不是一个好方法(它们破坏了工作单元)。

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

我喜欢 GUID 问他们是独一无二的,但我不喜欢如果你开始获得一个巨大的数据库,他们会占用很多空间。

我没有使用过 HILO,但我认为您需要一个特殊的 hilo 表才能使其工作,这有点糟糕。

人们的想法是什么。

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

将ok数据转换为PK的最佳方法是什么?使用我谈到的两种数据类型中的一种是否比另一种更容易转换?

4

1 回答 1

0

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

至于 HILO - 仅将其用于批处理。不喜欢使用额外表的想法。之后转移到自然键。

基本上我会建议使用 Guid.Comb。这里有一些关于这些东西的阅读:
使用 Guid.Comb Identifier Strategy

于 2012-08-02T20:15:28.223 回答