使用 uint 作为主键的代码优先方法
Posted
技术标签:
【中文标题】使用 uint 作为主键的代码优先方法【英文标题】:Code First approach using uint as primary key 【发布时间】:2019-08-05 04:16:58 【问题描述】:我在 MVC 中采用代码优先方法来生成表。我试图使我的 Employee 类的主键成为 uint 以防止负值,但显然,我总是遇到异常。是否有用于 int 类型的装饰代码以防止负数或允许 uint 作为主键的解决方法?
public class Employee
[Key]
[Column(Order = 0)]
public uint EmployeeId get; set;
public string FirstName get; set;
public string LastName get; set;
public decimal Salary get; set;
【问题讨论】:
有什么例外? 您的问题与 MVC 或 Web 无关。uint
应该是可能的,但不建议这样做。只需使用int
。
如果您想要比int
更高的精度,请使用long
而不是uint
。
许多 SQL 数据库不支持无符号整数。例如,SQL Server 将只使用long
来“支持”uint
。使用int
并确保它在您的域代码中不是负数。此外,请考虑仅使用 Id
。它在Employee
类中,因此它已经暗示Id
是员工ID。
【参考方案1】:
看看this。
另外,uint不是CLS compliant,所以一般不推荐使用
【讨论】:
以上是关于使用 uint 作为主键的代码优先方法的主要内容,如果未能解决你的问题,请参考以下文章
如何按照我们在 mvc 代码优先方法中的模式制作自动生成的主键