Maison >base de données >tutoriel mysql >Comment définir manuellement les clés primaires dans Entity Framework sans erreurs ?
Éviter les conflits de clés primaires dans l'approche Code-First d'Entity Framework
Dans le développement axé sur le code d'Entity Framework, la spécification manuelle des clés primaires peut parfois entrer en conflit avec la génération automatique des clés. Cela conduit souvent à des erreurs lors de la tentative d'insertion de données. Voyons comment éviter ces problèmes.
Une méthode consiste à désactiver la génération automatique de clés :
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Cependant, cela peut déclencher l'erreur :
<code>Cannot insert explicit value for identity column in table 'Events' when IDENTITY_INSERT is set to OFF.</code>
La solution réside dans la définition correcte de la propriété de clé primaire au sein de votre classe POCO (par exemple, Event
). Assurez-vous que votre déclaration de propriété comprend à la fois les attributs Key
et Required
:
<code class="language-csharp">[Key, Required] public int EventID { get; set; }</code>
Vous pouvez également obtenir le même résultat en utilisant ces attributs :
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Cette approche est compatible à la fois avec Entity Framework et Entity Framework Core, offrant un moyen fiable de gérer les clés primaires attribuées manuellement.
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!