2017-07-12 1 views
0

Je l'insertion d'enregistrements dans la base de données en utilisant des procédures stockées comme ci-dessousObtenez Dernière Inséré Entity Framework Id enregistrement

db.Database.ExecuteSqlCommand("sp_insertNewRecord"); 

Maintenant, je veux obtenir l'identifiant du dernier enregistrement inséré.

pour une raison quelconque, je ne peux pas utiliser la fonction ci-dessous

db.TableName.Add(record); 
db.SaveChanges(); 

Alors s'il vous plaît ne me suggérer de ne pas utiliser.

+4

Modifiez la procédure stockée pour générer l'ID dont vous avez besoin, soit en le retournant, soit en le définissant sur un paramètre de sortie. – David

+4

Obtenez votre SP pour retourner [SCOPE_IDENTITY()] (https://stackoverflow.com/questions/5228780/how-to-get-last-inserted-id) – Liam

+0

En raison de certains (** quoi? **) raison que je ne peut pas utiliser la fonction ci-dessous –

Répondre

4

Créer une variable de sortie dans votre procédure stockée comme

create procedure [dbo].[Procedurename] @returnVal int output 
as 
SET @returnVal = SCOPE_IDENTITY(); 

Après avoir inséré le disque obtenir le SCOPE_IDENTITY() et mettre cela en une variable de sortie.

et obtenir l'ID dans l'infrastructure de l'entité lors de l'appel de la procédure stockée.

Espérons que cette aide!