从nHibernate HiLo切换到GUID

是否可以从HiLo切换到GUID.comb?据我所知,后者结合了HiLo的优势,即管理Ids客户端而不是需要调用DB来获取新的Id,其优点是不可能耗尽Ids。 目前我们遇到的问题是HiLo生成ID如此之大,Int32(这应该是Int64,但这更像是我前任的WTF)还不够大。我们可以改为Int64,但这只是意味着我们将在以后而不是更快地遇到问题。 由于Ids不需要有意义,因此切换到GUID似乎是合乎逻辑的。然而,由于我从未尝试过这样的转换,我想知道这里是否有人可以帮助我评估这样的影响。     
已邀请:
实际上,切换到int64通常就足够了。请记住,您要再添加32位,这会将ID空间乘以+/- 20亿。你确定这还不够吗? 关于切换到Guid,它涉及(假设一个实时DB): 创建新的pk / fk列 使用新值填充pk列 根据旧列填充fk列 删除当前的外键和主键 删除旧pk / fk列 创建新的主键和外键 更改id属性类型和生成器(这是涉及.net代码的唯一步骤) 无论如何,虽然GUID提供“无限”ID并且它很容易生成,但它的缺点是两倍大(128位)并且稍微难以手动操作(即,在调试时你将依赖于复制和粘贴)     

要回复问题请先登录注册