Guid.NewGuid().用于DB的GetHashCode()

Tom*_*asi 5 .net database guid

这可以作为数据存储(SQL Server)的ID使用吗?

我会使用guid,但我更喜欢数值.

jas*_*son 3

这对于用作数据存储(SQL Server)的 ID 可靠吗?

不会。GUID 是 128 位,但哈希码是 32 位。因此,必然存在碰撞。您可能不太可能遇到它,但不能保证您永远不会遇到它。

您想要的可靠性是保证您永远不会遇到碰撞。如果你坚持使用Guid.NewGuid().GetHashCode()那么你需要添加逻辑来检测冲突。GUID 确实有优点(和缺点),但如果没有其他信息,我建议使用自动递增int列。特别是当你说你想要一个数字列时,我倾向于使用IDENTITY.