Получить ключ автоматической идентификации после вставки через EF - PullRequest
44 голосов
/ 08 декабря 2011

Существует ли прямой способ получения автоматически сгенерированного первичного ключа БД при добавлении записи через Entity Framework 4.1?

Например:

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

Эквивалент SQL будет:

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

Кстати, я использую MySQL, но SQL будет таким же, как на MSSQL

1 Ответ

92 голосов
/ 08 декабря 2011

Я считаю, что EF должен обновить объект вашей сущности с помощью идентификатора:

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