Maison >base de données >tutoriel mysql >Comment saisir manuellement des clés dans les tables Entity Framework ?
Spécification manuelle des clés primaires avec Entity Framework
Entity Framework génère généralement automatiquement des clés primaires, mais des situations peuvent survenir dans lesquelles vous devez attribuer manuellement des valeurs de clé. Cela conduit souvent à des conflits si l'auto-incrémentation est activée. Voici comment gérer cela :
Pour empêcher Entity Framework de générer automatiquement des clés primaires, vous pouvez utiliser soit l'API Fluent, soit des annotations de données :
Méthode 1 : API Fluent
Cette approche modifie le générateur de modèle :
<code class="language-csharp">modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);</code>
Si vous rencontrez l'erreur « Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table « Événements » lorsque IDENTITY_INSERT est défini sur OFF », vous devez ajuster les paramètres de la base de données :
Méthode 2 : Annotations de données
Vous pouvez également utiliser des attributs directement dans votre classe d'entité :
<code class="language-csharp">[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int EventID { get; set; }</code>
Les deux méthodes obtiennent le même résultat : désactiver l'auto-incrémentation pour la colonne EventID
, vous permettant de spécifier les valeurs clés directement lors de l'insertion de données dans votre table Events
. N'oubliez pas de choisir une méthode et de l'appliquer de manière cohérente. Utiliser les deux simultanément provoquera probablement des conflits.
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!