【问题标题】:Code First approach using uint as primary key使用 uint 作为主键的代码优先方法
【发布时间】: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。

标签: c# entity-framework code-first uint


【解决方案1】:

看看this

另外,uint不是CLS compliant,所以一般不推荐使用

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多