如何将MS SQL数据类型numeric(19,0)映射到.NET类型

时间:2013-12-20 22:04:47

标签: sql-server entity-framework

我正在研究从MS SQL数据库到POCO类的映射:

我有numeric(19, 0)numeric(18, 0)numeric(3, 0)numeric(3, 0)

我使用EF电动工具生成 POCO ,所有地图都生成小数.NET C# Type

但我认为它应该映射到BigIntInt64Int32Int16等。

2 个答案:

答案 0 :(得分:6)

以下是.NET整数类型及其具有最大拟合数字类型的域:

  • SByte => -128到127,最多可达NUMERIC(2, 0)
  • Int16 => -32,768到32,767,最多可达NUMERIC(4, 0)
  • Int32 => -2,147,483,648至2,147,483,647,最多可达NUMERIC(9, 0)
  • Int64 => -9,223,372,036,854,775,808至9,223,372,036,854,775,807,最多可达NUMERIC(18, 0)

由于decimal最多可以容纳7.9 * 10 ^ 28,因此最多可以容纳NUMERIC(28, 0)

如果您的整数字段大于NUMERIC(28, 0),则可以在.NET 4.0或更高版本中使用BigInteger

答案 1 :(得分:2)

numeric(x, y)将为小数。如果你想int,正确的类型是:

SQL / C#

  • long / Int64
  • int / Int32
  • smallint / Int16