Heim >Datenbank >MySQL-Tutorial >Wie kann ich Primärschlüssel im Entity Framework ohne Fehler manuell festlegen?
Vermeidung von Primärschlüsselkonflikten im Code-First-Ansatz des Entity Frameworks
Bei der Code-First-Entwicklung von Entity Framework kann die manuelle Angabe von Primärschlüsseln manchmal zu Konflikten mit der automatischen Schlüsselgenerierung führen. Dies führt häufig zu Fehlern beim Versuch, Daten einzufügen. Lassen Sie uns herausfinden, wie Sie diese Probleme vermeiden können.
Eine Methode besteht darin, die automatische Schlüsselgenerierung zu deaktivieren:
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Dies kann jedoch den Fehler auslösen:
<code>Cannot insert explicit value for identity column in table 'Events' when IDENTITY_INSERT is set to OFF.</code>
Die Lösung liegt in der korrekten Definition der Primärschlüsseleigenschaft innerhalb Ihrer POCO-Klasse (z. B. Event
). Stellen Sie sicher, dass Ihre Eigentumsdeklaration sowohl die Attribute Key
als auch Required
enthält:
<code class="language-csharp">[Key, Required] public int EventID { get; set; }</code>
Alternativ können Sie das gleiche Ergebnis mit diesen Attributen erzielen:
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Dieser Ansatz ist sowohl mit Entity Framework als auch mit Entity Framework Core kompatibel und bietet eine zuverlässige Möglichkeit, manuell zugewiesene Primärschlüssel zu verwalten.
Das obige ist der detaillierte Inhalt vonWie kann ich Primärschlüssel im Entity Framework ohne Fehler manuell festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!