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

Comment récupérer l'ID généré par la base de données après l'insertion d'une entité avec Entity Framework ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 11:07:10308parcourir

How to Retrieve the Database-Generated ID After Inserting an Entity with Entity Framework?

Utilisez Entity Framework pour obtenir l'identité de l'entité insérée

Entity Framework fournit un moyen pratique d'insérer des entités dans la base de données. Cependant, obtenir l’ID attribué par la base de données à l’entité insérée peut s’avérer difficile. Cet article aborde cette question en explorant deux approches.

Méthode 1 : Utiliser l'ID d'entité attribué

Cet article commence par une solution sur le site Web Entity Framework qui consiste à obtenir l'ID attribué à partir de l'objet entité lui-même. Bien que cette méthode renvoie l'ID interne de l'entité, il peut ne pas être cohérent avec l'ID de la table de base de données si l'enregistrement est supprimé.

Méthode 2 : Récupérer l'identifiant de la base de données

Une méthode plus fiable consiste à récupérer l'ID généré par la base de données. Ceci peut être réalisé en ajoutant simplement l'entité à l'ObjectSet et en appelant SaveChanges sur l'ObjectContext approprié. Entity Framework définit automatiquement la propriété Id de l'entité avec l'identité attribuée par la base de données :

<code>using (var context = new MyContext())
{
  context.MyEntities.Add(myNewObject);
  context.SaveChanges();

  int id = myNewObject.Id; // 数据库标识可用
}</code>

Entity Framework exécute une requête SELECT SCOPE_IDENTITY() après chaque INSERT pour récupérer l'ID généré, garantissant ainsi une récupération précise de l'ID.

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