我在类型为Biginit
的sql server 2008 r2中有一个列,当我使用实体框架映射sql server表时,它会自动为Biginit分配一个long
数据类型。我的问题是天气如此转换是正确的还是应该被覆盖?换句话说,SQL Server 2008 Biginit 100%相当于.Net Long?
第二个问题是.Net Long 100%相当于.Net Int64?
答案 0 :(得分:2)
SQL的bigint
等同于C#的Int64
。
long
只是Int64
的语法糖,与string
和String
或int
和Int32
相同。
所以bigint == long == Int64
。
答案 1 :(得分:1)
是,SQL server BigInt
= .NET Int64
= C#long
答案 2 :(得分:1)
内部.Net数据类型为Int64
。这是一个64位有符号整数。 long
是Int64
的别名。可能是因为它看起来更像C#-ish。
BigInt
也是64位有符号整数。它与其他带符号的64位整数类型基本相同(具有相同的域/范围)。除了一个例外,BigInt
可以具有空值,并且默认情况下具有此行为。
实际上:
BigInt
= long?
= Nullable<long>
BigInt NOT NULL
= long