Maison > développement back-end > C++ > Comment définir manuellement les valeurs de clé primaire dans Entity Framework ?

Comment définir manuellement les valeurs de clé primaire dans Entity Framework ?

Patricia Arquette
Libérer: 2025-01-14 06:59:45
original
598 Les gens l'ont consulté

How to Manually Set Primary Key Values in Entity Framework?

Entity Framework : gestion manuelle des clés primaires

Entity Framework (EF) génère généralement automatiquement des valeurs de clé primaire. Cependant, il existe des situations où la spécification manuelle des clés primaires est nécessaire. Ce guide explique comment y parvenir.

Désactivation de la génération automatique de clés

Pour activer la saisie manuelle de la clé primaire, modifiez la méthode OnModelCreating comme suit :

modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Copier après la connexion

Résoudre les conflits de colonnes d'identité

L'erreur « La colonne d'identité ne peut pas insérer de valeur explicite » se produit lorsque la propriété IDENTITY_INSERT de la table est définie sur OFF. Pour remédier à cela, définissez temporairement IDENTITY_INSERT sur ON avant d'insérer des données.

Configuration basée sur les attributs

Vous pouvez également utiliser des attributs pour définir les propriétés clés directement dans votre classe :

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int EventID { get; set; }
Copier après la connexion

Cette méthode évite de modifier OnModelCreating et est compatible avec EF Core.

Exemple de classe POCO mis à jour

La classe POCO suivante illustre l'approche basée sur les attributs :

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; }
}
Copier après la connexion

Cette approche offre une solution plus propre et plus maintenable pour gérer les clés primaires définies manuellement dans vos modèles EF.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal