Correspondência de tipos de dados C# e SQL Server: guia completo
Olá a todos! Sou um desenvolvedor C# iniciante, escrevendo um pequeno aplicativo para trabalhar com banco de dados SQL Server via Entity Framework. Encontrei um problema: não consigo entender exatamente quais tipos de dados em C# correspondem aos tipos no SQL Server.
Por exemplo, tenho uma tabela com colunas:
CREATE TABLE Users (
Id INT PRIMARY KEY,
Name NVARCHAR(100),
Salary DECIMAL(18,2),
IsActive BIT,
CreatedAt DATETIME2
);
Em C#, estou criando um modelo:
public class User
{
public int Id { get; set; } // INT -> int, aqui parece claro
public string Name { get; set; } // NVARCHAR -> string, também claro
public decimal Salary { get; set; } // DECIMAL -> decimal?
public bool IsActive { get; set; } // BIT -> bool?
public DateTime CreatedAt { get; set; } // DATETIME2 -> DateTime?
}
Mas existem muitos outros tipos: BIGINT, SMALLINT, TINYINT, FLOAT, REAL, MONEY, UNIQUEIDENTIFIER, VARBI