SQL Server Data Type Mappings (EF 與 SQL 型別對照)

2022-02-09

筆記 SQL Server 各種 DataType 如何對應到 .Net 的類別,使用時機如設計資料庫綱要與使用 EntityFramework Database First 評估從 Database Table 到 Model Class,或者是反向以 Code First 從 Model Class 到 Database Table。

SQL Server Logo

對照

Frequently Used

SQL Server Database Engine type .NET Framework type
bit Boolean
datetime DateTime
datetime2 DateTime
decimal Decimal
float Double
int Int32
char String / Char[]
varchar String / Char[]
nchar String / Char[]
nvarchar String / Char[]

Unexpected

SQL Server Database Engine type .NET Framework type
binary Byte[]
image Byte[]
money Decimal
tinyint Byte
real Single

Full Mappings

從 SQL Server DataType 到 .NET Framework 除字串類型相容 String 以及 Char[] 都情況外,都是一對一的轉換;但如果是從 .NET Framework Type 要轉換成 SQL Server DataType 就是多對一的情況,沒有辦法直接轉換。這個問題對於 Code First 來說應該有另外的處理方法?

SQL Server Database Engine type .NET Framework type
bigint Int64
binary Byte[]
bit Boolean
char String / Char[]
date new DateTime
datetime DateTime
datetime2 new DateTime
datetimeoffset new DateTimeOffset
decimal Decimal
FILESTREAM (varbinary(max)) Byte[]
float Double
image Byte[]
int Int32
money Decimal
nchar String / Char[]
ntext String / Char[]
numeric Decimal
nvarchar String / Char[]
real Single
rowversion Byte[]
smalldatetime DateTime
smallint Int16
smallmoney Decimal
sql_variant Object
text String / Char[]
time new TimeSpan
timestamp Byte[]
tinyint Byte
uniqueidentifier Guid
varbinary Byte[]
varchar String / Char[]
xml Xml

說明

new
SQL Server 2008 後出現的 Data Type

參考資料

SQL Server Data Type Mappings

相關連結

SQL Server Integrated Service 初探

SQL Server 閃電般快速查詢指南⚡

SQL Server 周邊工具彙整筆記

SQL Server 學習資源筆記