Avatar ·

Übereinstimmung der Datentypen von C# und SQL Server: vollständige Anleitung

Hallo zusammen! Ich bin ein C#-Anfänger und schreibe eine kleine Anwendung, die mit einer SQL Server-Datenbank über Entity Framework arbeitet. Ich bin auf ein Problem gestoßen: Ich kann nicht genau verstehen, welche Datentypen in C# den Typen in SQL Server entsprechen.

Zum Beispiel habe ich eine Tabelle mit Spalten:

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

In C# erstelle ich ein Model:

public class User
{
    public int Id { get; set; }           // INT -> int, das ist wohl klar
    public string Name { get; set; }      // NVARCHAR -> string, auch klar
    public decimal Salary { get; set; }   // DECIMAL -> decimal?
    public bool IsActive { get; set; }    // BIT -> bool?
    public DateTime CreatedAt { get; set; } // DATETIME2 -> DateTime?
}

Aber es gibt viele andere Typen: BIGINT, SMALLINT, TINYINT, FLOAT, REAL, MONEY, UNIQUEIDENTIFIER, VARBI