Maison >développement back-end >C++ >Comment récupérer un ID d'entité attribué par la base de données après insertion avec Entity Framework ?

Comment récupérer un ID d'entité attribué par la base de données après insertion avec Entity Framework ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-21 11:17:13404parcourir

How to Retrieve a Database-Assigned Entity ID After Insertion with Entity Framework?

Obtention de votre identifiant d'entité après une insertion d'Entity Framework

Lorsque vous insérez une nouvelle entité dans votre base de données à l'aide d'Entity Framework, vous aurez souvent besoin de l'ID attribué par la base de données pour les opérations ultérieures. Cet article explique comment récupérer efficacement cet identifiant.

Bien qu'Entity Framework fournisse une propriété ID, celle-ci contient initialement un identifiant temporaire, et non l'ID réel de la base de données. Pour obtenir l'ID généré par la base de données, une méthode légèrement différente est requise.

La solution

Entity Framework gère avec élégance la récupération d'ID pour les clés générées automatiquement (comme IDENTITY dans SQL Server). Ajoutez simplement votre entité à l'ObjectSet approprié et appelez SaveChanges sur l'ObjectContext. La propriété ID de votre entité sera ensuite mise à jour avec la valeur attribuée par la base de données.

<code class="language-csharp">using (var context = new MyContext())
{
  context.MyEntities.Add(myNewObject);
  context.SaveChanges();

  int id = myNewObject.Id; // id now contains the database-generated ID
}</code>

En interne, Entity Framework utilise SCOPE_IDENTITY() (ou une fonction similaire en fonction de votre base de données) pour récupérer l'ID de l'entité nouvellement insérée lorsque des clés générées automatiquement sont utilisées. Cela garantit que vous obtenez le bon identifiant sans codage supplémentaire.

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