Maison > base de données > tutoriel mysql > Comment définir manuellement les clés primaires dans Entity Framework sans erreurs ?

Comment définir manuellement les clés primaires dans Entity Framework sans erreurs ?

Mary-Kate Olsen
Libérer: 2025-01-15 19:16:47
original
513 Les gens l'ont consulté

How to Manually Set Primary Keys in Entity Framework without Errors?

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

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

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

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

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal