Heim >Datenbank >MySQL-Tutorial >Wie vermeide ich den Fehler „Kann keinen expliziten Wert für die Identitätsspalte einfügen' beim manuellen Festlegen von Primärschlüsseln in Entity Framework?
Behebung von Problemen bei der manuellen Primärschlüsseleingabe im Entity Framework
Das manuelle Zuweisen von Primärschlüsseln in Entity Framework kann zu datenbankgenerierten Schlüsselfehlern führen. Dieser Artikel beschreibt eine Lösung mithilfe von Attributen, um diese Probleme zu vermeiden.
Von der direkten Verwendung des [NotMapped]
-Attributs wird abgeraten. Obwohl DatabaseGeneratedOption.None
eine praktikable Alternative zur Verhinderung der automatischen Schlüsselgenerierung zu sein scheint, wird häufig der Fehler „Expliziten Wert für Identitätsspalte kann nicht eingefügt werden“ ausgegeben.
Die Lösung besteht darin, das explizite Einfügen in Identitätsspalten mithilfe der Tabellenoption IDENTITY_INSERT
zu ermöglichen:
<code class="language-sql">ALTER TABLE Event SET IDENTITY_INSERT ON;</code>
Dadurch ist der Konflikt gelöst. Alternativ bieten Attribute einen saubereren Ansatz:
<code class="language-csharp">using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Diese attributbasierte Methode ist mit Entity Framework Core kompatibel. Durch die Verwendung von DatabaseGeneratedOption.None
oder des Attributansatzes können Entwickler manuelle Primärschlüsselzuweisungen innerhalb von Entity Framework effektiv verwalten.
Das obige ist der detaillierte Inhalt vonWie vermeide ich den Fehler „Kann keinen expliziten Wert für die Identitätsspalte einfügen' beim manuellen Festlegen von Primärschlüsseln in Entity Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!