Avatar ·

C# 与 SQL Server 数据类型对应关系:完整指南

大家好!我是一名初学 C# 的开发者,正在通过 Entity Framework 编写一个与 SQL Server 数据库交互的小应用程序。我遇到了一个问题:无法准确理解 C# 中的哪些类型与 SQL Server 中的类型相对应。

例如,我有一个包含以下列的表:

CREATE TABLE Users (
    Id INT PRIMARY KEY,
    Name NVARCHAR(100),
    Salary DECIMAL(18,2),
    IsActive BIT,
    CreatedAt DATETIME2
);

在 C# 中,我创建了模型:

public class User
{
    public int Id { get; set; }           // INT -> int,这里似乎清楚
    public string Name { get; set; }      // NVARCHAR -> string,也很明确
    public decimal Salary { get; set; }   // DECIMAL -> decimal?
    public bool IsActive { get; set; }    // BIT -> bool?
    public DateTime CreatedAt { get; set; } // DATETIME2 -> DateTime?
}

但还有很多其他类型:BIGINT, SMALLINT, TINYINT, FLOAT, REAL, MONEY, UNIQUEIDENTIFIER, VARBI