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?