web-dev-qa-db-fra.com

Obtenir la clé d'identité automatique après l'insertion via EF

Existe-t-il un moyen simple de récupérer une clé primaire générée automatiquement par DB lors de l'ajout d'un enregistrement via Entity Framework 4.1?

Par exemple:

dbcontext.Entity_Tables.Add(new Entity_Table { item1 = val1, item2 = val2 });
dbcontext.SaveChanges();
newPK = ???;

L'équivalent SQL serait:

newPK = executeOnDB("INSERT INTO Entity_Table (item1, item2) VALUES (val1, val2);SELECT @@Indentity";);

BTW j'utilise MySQL mais le SQL serait le même que sur MSSQL

45
chrisg229

Je crois qu'EF devrait mettre à jour votre objet entité avec l'identité:

var entity = new Entity_Table { item1 = val1, item2 = val2 };
dbcontext.Entity_Tables.Add(entity);
dbcontext.SaveChanges();
int newPK = entity.ID;
93
Omer Bokhari