Maison >base de données >tutoriel mysql >Comment saisir manuellement des clés dans les tables Entity Framework ?

Comment saisir manuellement des clés dans les tables Entity Framework ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-15 19:01:44490parcourir

How to Manually Enter Keys into Entity Framework Tables?

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 :

  1. Ouvrez SQL Server Management Studio (SSMS) et connectez-vous à votre base de données.
  2. Localisez le tableau « Événements ».
  3. Cliquez avec le bouton droit sur le tableau, sélectionnez « Propriétés », accédez à l'onglet « Options ».
  4. Dans la section « Spécification de l'identité », définissez « Is Identity » sur « Non ». Cliquez sur "OK".

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!

Déclaration:
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