Automatisch generierte Schlüssel von Entity Framework durch manuelle Eingabe überschreiben
Die manuelle Verwaltung von Primärschlüsseln in Entity Framework kann Schwierigkeiten bereiten, wenn versucht wird, die automatische ID-Generierung des Frameworks zu unterdrücken. Dieser Leitfaden befasst sich mit diesem häufigen Problem.
Die Herausforderung entsteht, wenn versucht wird, die automatische EventID-Generierung mithilfe von HasDatabaseGeneratedOption(DatabaseGeneratedOption.None)
zu verhindern. Dies steht oft im Konflikt mit der IDENTITY_INSERT
-Einstellung in SQL Server.
Konflikt lösen:
Um diesen Konflikt zu lösen, aktivieren Sie IDENTITY_INSERT
für die entsprechende Tabelle. Dies ermöglicht das manuelle Einfügen von Identitätswerten. Implementieren Sie dies in Ihrem DbContext-Konstruktor:
<code class="language-csharp">using (var connection = Db.Database.Connection) { var command = connection.CreateCommand(); command.CommandText = "SET IDENTITY_INSERT Events ON"; command.ExecuteNonQuery(); }</code>
Attributbasierte Schlüsselkonfiguration:
Alternativ können Sie Attribute zur Konfiguration verwenden. Wenden Sie das folgende Attribut auf Ihre EventID
-Eigenschaft an:
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Dieser Ansatz funktioniert in Entity Framework 6 und Entity Framework Core identisch.
Durch die Einbindung dieser Änderungen können Sie die automatische Primärschlüsselgenerierung effektiv deaktivieren und Ereignisentitätswerte manuell verwalten.
Das obige ist der detaillierte Inhalt vonWie deaktiviere ich automatisch generierte Schlüssel im Entity Framework mit manueller Schlüsseleingabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!