使用uint而不是int作为数据模型类中的主键是否是个好主意?

xpo*_*ort 22 c# entity-framework

我们知道主键通常是正整数.

在数据模型类中使用uint而不是int作为主键是否是个好主意?

示例:

public class Customer
{
   public uint CustomerId {get;set;}
   //others are omitted for the sake of simplicity.
}
Run Code Online (Sandbox Code Playgroud)

Jer*_*ine 12

相应的SQL数据类型是带符号的数字,因此我坚持使用int以避免任何意外.


Joe*_*Joe 8

uint不符合CLS,因此通常建议不要在公共API中使用它.


nik*_*3ro 8

如果其他人偶然发现这个问题 - 请勿使用uint钥匙.我刚刚尝试使用Entity Framework 6.1.12并且代码保持失败并且具有神秘的"实体没有密钥"异常.

只有在我将uint属性更改回int之后,它才开始按预期工作.

所以,是的,有2亿个未使用的范围很糟糕,但事情就是如此.如果你有一点点疑问,你最终可能会得到十亿以上的记录,那就去吧.具有讽刺意味的是,你将获得9,223,372,036,854,775,808个未使用的数字;).