46 votes

Comment trouver une identité de la dernière ligne insérée dans Entity Framework ?

J'insère des données dans plusieurs tables. J'ai besoin de connaître le dernier ID inséré (auto-incrémenté) dans la table. Je dois l'utiliser comme clé étrangère dans une autre table.

En bref, j'ai besoin d'une alternative de @@Identity dans T-Sql.

112voto

Steven Points 56939

Entity Framework chargera automatiquement le dernier identifiant inséré pour remplir la colonne de clé primaire de l'entité insérée :

 var customer = new Customer { Name = "Steven" };

context.AddObject(customer);

context.SaveChanges();

var id = customer.Id;

Notez que la Id n'est renseignée qu'après l'appel de SaveChanges() au cas où l' StoreGeneratedPattern est défini sur « Identity » ou « Calculé » pour l'ID auto-incrémenté dans la partie Stockage du modèle.

-1voto

umer Points 376

Quoi qu'il en soit, si vous avez besoin de l'identifiant à d'autres fins ... l'appel de la méthode d'insertion EF pour une entité renvoie automatiquement l'identifiant de ligne actuellement inséré ...

 var rowId=db.Insert(Entity); 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X