Ich bin neu in EF und versuchen, meine ersten Schritte per Code ersten Ansatz in ETF6.0 und jetzt habe ich ein Problem.Wie String-Eigenschaft als Primärschlüssel in Entity Framework verwenden
Ich habe eine Eigenschaft
[Key]
public string FooId { get; set; }
die meine Primärschlüssel für das Modell ist.
Aber wenn ich laufe den
PM> Update-Database
Befehl in Paket-Manager-Konsole zu aktualisieren Migrationen in die Datenbank anhängige ich die folgende Fehlermeldung erhalten:
Identity column 'FooId' must be of data type int, bigint, smallint, tinyint, or decimal or numeric with a scale of 0, and constrained to be nonnullable.
Wenn ich die PK in meinem Modell ändern
[Key]
public int FooId { get; set; }
alles funktioniert gut.
Aber ich würde die PK vom Typ String brauchen, weil es in meinem Fall absolut sens macht. Ich weiß, dass es Nachteile gibt, aber für mich ist es notwendig.
Ich sah einen älteren Beitrag hier How to make string as primary key in entity framework!.
Aber es scheint nicht mein Problem zu lösen, oder ich verstehe es einfach nicht.
Kann ich wirklich keine Zeichenfolge als PK in einer SQL-Datenbank verwenden?
Oder gibt es eine Möglichkeit, das zu tun?
Der Schlüssel ist, um Identität Verzug geraten, so dass Sie es durch das Attribut deaktivieren müssen '[DatabaseGenerated (DatabaseGeneratedOption.None)] 'Das bedeutet, dass Sie den Schlüssel beim Hinzufügen manuell angeben müssen (er wird nicht generiert). – Hopeless