Ich habe eine ASP.NET Core 1.0-Webanwendung, die einige REST-Webdienste implementiert, die über Entity Framework Core mit einer PostgreSQL-Datenbank interagieren.Entity Framework Identität Spalte Negativer Wert
In meinem Modell habe ich eine Vielzahl von Code-first Entitätsklassen, das das folgende Muster verwenden:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
Offensichtlich entspricht dies einen automatische Erhöhung eindeutigen Schlüssel Identitätsspalt in der Datenbank.
Das Problem ist, dass, zweifellos aufgrund eines Defekts irgendwo, gelegentlich aus Gründen, die ich noch nicht verstehe, der Wert der Id eine sehr große negative ganze Zahl ist.
-2147482645
Normalerweise sie beginnen, gut erzogene schön aufsteigende Integer-Werte bei 1.
Was es verursachen könnte?
Nichts hindert jemanden daran, eine solche Nummer manuell einzugeben –
Mein __very__ begrenztes Verständnis von PostgreSQL ist, dass der Autoinkrement-Datentyp 'serial' oder' bigserial' heißt. Vielleicht sollten Sie überprüfen, was die Migration generiert. Wenn dies nicht gewünscht ist, verwenden Sie ein 'Column' -Attribut, um den bevorzugten Datentyp anzugeben. Übrigens sind die aktuellen Attribute, die Sie verwenden, überflüssig. Ihre Schlüsseleigenschaft folgt der Konvention. –
@a_horse_with_no_name ja, aber das mache ich nicht. Ich lasse EF die volle Kontrolle über die Einsätze. – robbpriestley