使用uint而不是int作为数据模型类中的主键是否是个好主意?
我们知道主键通常是正整数。
使用uint
而不是int
作为数据模型类中的主键是否是个好主意?
示例 :
public class Customer { public uint CustomerId {get;set;} //others are omitted for the sake of simplicity. }
相应的SQL数据类型是带符号的数字,所以我坚持使用int
来避免任何意外。
uint不符合CLS ,因此通常建议不要在公共API中使用它。
如果其他人偶然发现了这个问题 – 不要使用uint
作为你的钥匙。 我刚刚尝试使用Entity Framework 6.1.12并且代码保持失败并且隐藏着“实体没有密钥”exception。
只有在我将uint属性更改回int之后,才开始按预期工作。
所以,是的,有2亿个范围未使用很糟糕,但事情就是如此。 如果你甚至有一点怀疑,你最终可能会得到十亿以上的记录,那就去吧。 具有讽刺意味的是,你将获得9,223,372,036,854,775,808个未使用的数字;)。
我认为这是个坏主意,int类型的原因更适合在.NET Framework中使用。
- 允许按列gridview排序
- 从线程触发时,C#ShowDialog()不会阻止主窗体
- 将数据从Form2(textbox2)传输到Form1(textbox1)?
- 如何在DateTimePicker控件上禁用某些日期?
- 本地化和DataAnnotations。 GlobalResourceProxyGenerator和PublicResxFileCodeGenerator
- 了解C#中运行时代码生成的各种选项(Roslyn,CodeDom,Linq Expressions,…?)
- LINQ to XML – 如何正确使用XDocument
- WPF – 无法更改OnChanged方法内的GUI属性(从FileSystemWatcher触发)
- 如何在ASP.NET Core 1 MVC 6中为单元/集成测试模拟IFormFile?