Maison >base de données >tutoriel mysql >Comment éviter les erreurs « Impossible d'insérer une valeur explicite pour la colonne d'identité » lors de la définition manuelle des clés primaires dans Entity Framework ?
Résolution des problèmes de saisie manuelle de clé primaire dans Entity Framework
L'attribution manuelle de clés primaires dans Entity Framework peut entraîner des erreurs de clé générées par la base de données. Cet article présente une solution utilisant des attributs pour éviter ces problèmes.
L'utilisation directe de l'attribut [NotMapped]
est déconseillée. Bien que DatabaseGeneratedOption.None
semble être une alternative viable pour empêcher la génération automatique de clé, il génère souvent une erreur « Impossible d'insérer une valeur explicite pour la colonne d'identité ».
La solution consiste à activer l'insertion explicite dans les colonnes d'identité à l'aide de l'option de table IDENTITY_INSERT
:
<code class="language-sql">ALTER TABLE Event SET IDENTITY_INSERT ON;</code>
Cela résout le conflit. Alternativement, les attributs offrent une approche plus propre :
<code class="language-csharp">using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Cette méthode basée sur les attributs est compatible avec Entity Framework Core. En utilisant soit DatabaseGeneratedOption.None
soit l'approche par attributs, les développeurs peuvent gérer efficacement les affectations manuelles de clés primaires dans Entity Framework.
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!