Heim >Backend-Entwicklung >C++ >Wie legt man Primärschlüsselwerte im Entity Framework manuell fest?

Wie legt man Primärschlüsselwerte im Entity Framework manuell fest?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-14 06:59:45500Durchsuche

How to Manually Set Primary Key Values in Entity Framework?

Entity Framework: Manuelle Primärschlüsselverwaltung

Entity Framework (EF) generiert in der Regel automatisch Primärschlüsselwerte. Es gibt jedoch Situationen, in denen die manuelle Angabe von Primärschlüsseln erforderlich ist. In diesem Leitfaden erfahren Sie, wie Sie dies erreichen.

Automatische Schlüsselgenerierung deaktivieren

Um die manuelle Primärschlüsseleingabe zu ermöglichen, ändern Sie die OnModelCreating-Methode wie folgt:

<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>

Behebung von Identitätsspaltenkonflikten

Der Fehler „Identitätsspalte kann keinen expliziten Wert einfügen“ tritt auf, wenn die IDENTITY_INSERT-Eigenschaft der Tabelle auf OFF festgelegt ist. Um dies zu beheben, setzen Sie IDENTITY_INSERT vorübergehend auf ON, bevor Sie Daten einfügen.

Attributbasierte Konfiguration

Alternativ können Sie Attribute verwenden, um Schlüsseleigenschaften direkt in Ihrer Klasse zu definieren:

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

Diese Methode vermeidet Änderungen OnModelCreating und ist mit EF Core kompatibel.

Aktualisiertes POCO-Klassenbeispiel

Die folgende POCO-Klasse demonstriert den attributbasierten Ansatz:

<code class="language-csharp">public class Event
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int EventID { get; set; }

    public string EventType { get; set; } 
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }

    public virtual ICollection<Match> Matches { get; set; }
    public virtual ICollection<EventParticipation> EventParticipation { get; set; }
}</code>

Dieser Ansatz bietet eine sauberere, wartbarere Lösung für die Verwaltung manuell festgelegter Primärschlüssel in Ihren EF-Modellen.

Das obige ist der detaillierte Inhalt vonWie legt man Primärschlüsselwerte im Entity Framework manuell fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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