Entity Framework : Maîtriser l'attribution manuelle de la clé primaire et dépanner les erreurs de colonne d'identité
Ce guide aborde les complexités de la définition manuelle des clés primaires dans le système de gestion de base de données Entity Framework. Nous aborderons la désactivation de la génération automatique de clés d'EF et la résolution des erreurs courantes liées aux attributions explicites de valeurs de clés.
Entity Framework (EF) gère généralement automatiquement la génération de clé primaire. Pour remplacer ce comportement et spécifier vos propres clés, utilisez la propriété DatabaseGeneratedOption
, définie sur None
. Ceci peut être réalisé en utilisant soit des attributs, soit l'API fluide.
Méthode 1 : configuration basée sur les attributs
[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }
Méthode 2 : Configuration de l'API fluide
modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
La désactivation de la génération automatique de clés entraîne souvent des erreurs impliquant les colonnes d'identité. Cela se produit généralement parce que IDENTITY_INSERT
est désactivé pour la table concernée. Pour résoudre ce problème, activez temporairement IDENTITY_INSERT
pour autoriser l'insertion de valeurs explicites dans la colonne d'identité.
Remarque importante : L'activation de IDENTITY_INSERT
comporte des risques potentiels en matière d'intégrité des données et doit être utilisée judicieusement et uniquement lorsque cela est absolument nécessaire. Considérez attentivement les implications avant de mettre en œuvre cette solution.
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!