Heim > Backend-Entwicklung > C++ > Wie legt man Primärschlüssel im Entity Framework manuell fest und vermeidet gleichzeitig „IDENTITY_INSERT'-Fehler?

Wie legt man Primärschlüssel im Entity Framework manuell fest und vermeidet gleichzeitig „IDENTITY_INSERT'-Fehler?

Linda Hamilton
Freigeben: 2025-01-14 09:44:43
Original
195 Leute haben es durchsucht

How to Manually Set Primary Keys in Entity Framework While Avoiding `IDENTITY_INSERT` Errors?

Umgehen der automatischen Inkrementierung im Entity Framework: Ein praktischer Leitfaden

Die automatische Primärschlüsselgenerierung von Entity Framework kann problematisch sein, wenn Sie Schlüsselwerte manuell zuweisen müssen. Dies führt oft zu Konflikten, wie der Fehler zeigt, der beim Versuch auftritt, das Verhalten bei der automatischen Inkrementierung außer Kraft zu setzen.

Anfänglich wurde der folgende Code verwendet, um zu verhindern, dass Entity Framework den Primärschlüssel automatisch verwaltet:

<code class="language-csharp">modelBuilder.Entity<event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Nach dem Login kopieren

Dies führte jedoch zu einem SqlException: „Der explizite Wert für die Identitätsspalte in der Tabelle „Ereignisse“ kann nicht eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist.“ Dies liegt daran, dass IDENTITY_INSERT der Datenbank deaktiviert ist, wodurch das direkte Einfügen von Werten in Identitätsspalten verhindert wird.

Eine robustere Lösung nutzt DataAnnotations-Attribute für einen saubereren und kompatibleren Ansatz, insbesondere mit Entity Framework Core:

<code class="language-csharp">[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }</code>
Nach dem Login kopieren

Dieses Code-Snippet deklariert die Eigenschaft Id als Primärschlüssel ([Key]) und deaktiviert explizit die automatische Wertgenerierung ([DatabaseGenerated(DatabaseGeneratedOption.None)]). Dies ermöglicht eine manuelle Primärschlüsselzuweisung bei gleichzeitiger Wahrung der Kompatibilität mit dem Entity Framework. Diese Methode vermeidet effektiv das IDENTITY_INSERT-Problem und bietet eine elegantere Lösung für die Verwaltung von Primärschlüsseln.

Das obige ist der detaillierte Inhalt vonWie legt man Primärschlüssel im Entity Framework manuell fest und vermeidet gleichzeitig „IDENTITY_INSERT'-Fehler?. 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