在Bigint和;之间转换;很长; Int64是安全的

时间:2013-12-23 14:15:05

标签: .net sql-server

我在类型为Biginit的sql server 2008 r2中有一个列,当我使用实体框架映射sql server表时,它会自动为Biginit分配一个long数据类型。我的问题是天气如此转换是正确的还是应该被覆盖?换句话说,SQL Server 2008 Biginit 100%相当于.Net Long? 第二个问题是.Net Long 100%相当于.Net Int64?

3 个答案:

答案 0 :(得分:2)

SQL的bigint等同于C#的Int64

long只是Int64的语法糖,与stringStringintInt32相同。

所以bigint == long == Int64

答案 1 :(得分:1)

是,SQL server BigInt = .NET Int64 = C#long

答案 2 :(得分:1)

对于.Net

内部.Net数据类型为Int64。这是一个64位有符号整数。 longInt64的别名。可能是因为它看起来更像C#-ish。

对于SQL

BigInt也是64位有符号整数。它与其他带符号的64位整数类型基本相同(具有相同的域/范围)。除了一个例外,BigInt可以具有空值,并且默认情况下具有此行为。

实际上:

  • BigInt = long? = Nullable<long>
  • BigInt NOT NULL = long