Heim >Datenbank >MySQL-Tutorial >Wie gebe ich Schlüssel manuell in Entity Framework-Tabellen ein?
Manuelles Festlegen von Primärschlüsseln mit Entity Framework
Entity Framework generiert in der Regel automatisch Primärschlüssel, es kann jedoch vorkommen, dass Sie Schlüsselwerte manuell zuweisen müssen. Dies führt häufig zu Konflikten, wenn die automatische Inkrementierung aktiviert ist. So gehen Sie damit um:
Um zu verhindern, dass Entity Framework automatisch Primärschlüssel generiert, können Sie entweder die Fluent-API oder Datenanmerkungen verwenden:
Methode 1: Fluent API
Dieser Ansatz ändert den Modellersteller:
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Wenn die Fehlermeldung „Kann keinen expliziten Wert für die Identitätsspalte in Tabelle ‚Ereignisse‘ einfügen, wenn IDENTITY_INSERT auf AUS gesetzt ist“ auftritt, müssen Sie die Datenbankeinstellungen anpassen:
Methode 2: Datenanmerkungen
Alternativ können Sie Attribute direkt in Ihrer Entitätsklasse verwenden:
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Beide Methoden erzielen das gleiche Ergebnis: die Deaktivierung der automatischen Inkrementierung für die Spalte EventID
, sodass Sie die Schlüsselwerte direkt angeben können, wenn Sie Daten in Ihre Events
-Tabelle einfügen. Denken Sie daran, eine Methode auszuwählen und diese konsequent anzuwenden. Die gleichzeitige Verwendung beider führt wahrscheinlich zu Konflikten.
Das obige ist der detaillierte Inhalt vonWie gebe ich Schlüssel manuell in Entity Framework-Tabellen ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!