Heim > Datenbank > MySQL-Tutorial > Wie kann ich Primärschlüssel im Entity Framework ohne Fehler manuell festlegen?

Wie kann ich Primärschlüssel im Entity Framework ohne Fehler manuell festlegen?

Mary-Kate Olsen
Freigeben: 2025-01-15 19:16:47
Original
561 Leute haben es durchsucht

How to Manually Set Primary Keys in Entity Framework without Errors?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage