Entity Framework 6-GUID als Primärschlüssel: Der Wert NULL kann nicht in die Spalte 'Id' in der Tabelle 'FileStore' eingefügt werden. Spalte erlaubt keine Nullen

Ich habe eine Entität mit dem Primärschlüssel "Id", die Guid ist:

public class FileStore
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Path { get; set; }
}

Und etwas Konfiguration:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<FileStore>().Property(x => x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    base.OnModelCreating(modelBuilder);
}

Wenn ich versuche, einen Datensatz einzufügen, wird folgende Fehlermeldung angezeigt:

Der Wert NULL kann nicht in die Spalte 'Id' in der Tabelle 'FileStore' eingefügt werden. Spalte erlaubt keine Nullen. INSERT schlägt fehl. \ R \ nDie Anweisung wurde abgebrochen.

Ich möchte Guid nicht manuell generieren. Ich möchte nur einen Datensatz einfügen und erhaltenId generiert von SQL Server. Wenn ich setze.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity), Id Spalte ist keine Identitätsspalte in SQL Server.

Wie kann ich Entity Framework so konfigurieren, dass Guid in SQL Server automatisch generiert wird?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage