如何将MS SQL数据类型numeric(19,0)映射到.NET类型 [英] How can I map MS SQL datatype numeric(19, 0) to .NET type
问题描述
我正在从MS SQL数据库映射到POCO类:
I am working on the mapping from MS SQL database to POCO classes:
我有 numeric(19,0)
,数字(18,0)
,数字(3、0)
, numeric(3,0)
。
我正在使用EF电动工具生成 POCO ,所有映射到小数 .NET
C# 类型
。
I am using the EF power tools to generate POCO and all map to decimal .NET
C# Type
.
但是我认为它应该映射到 BigInt
, Int64
, Int32
, Int16
等。
But I think it should map to BigInt
, Int64
, Int32
, Int16
etc.
推荐答案
以下是.NET整数类型及其具有最大拟合数值类型的域:
Here are the .NET integer types and their domains with maximum fitting numeric types:
-
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)
SByte
=> -128 to 127 which fits up toNUMERIC(2, 0)
Int16
=> -32,768 to 32,767 which fits up toNUMERIC(4, 0)
Int32
=> -2,147,483,648 to 2,147,483,647 which fits up toNUMERIC(9, 0)
Int64
=> -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 which fits up toNUMERIC(18, 0)
由于十进制
最多可以容纳7.9 * 10 ^ 28,它适用于 NUMERIC(28,0)
。
Since a decimal
can hold up to 7.9*10^28, it fits up to NUMERIC(28, 0)
.
如果您的整数字段大于 NUMERIC(28,0)
,则可以在.NET 4.0或更高版本中使用 BigInteger
。
If you have an integer field bigger than NUMERIC(28, 0)
, you can use BigInteger
in .NET 4.0 or newer.
这篇关于如何将MS SQL数据类型numeric(19,0)映射到.NET类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!