Как найти идентификатор последней вставленной строки в Entity Framework? - PullRequest
38 голосов
/ 01 ноября 2010

Я вставляю данные в несколько таблиц. Мне нужно знать последний вставленный (автоинкрементный) идентификатор в таблице. Мне нужно использовать его в качестве внешнего ключа в другой таблице.

Короче мне нужна альтернатива @@Identity в T-Sql.

Ответы [ 2 ]

84 голосов
/ 01 ноября 2010

Entity Framework автоматически загрузит последний вставленный идентификатор для заполнения столбца первичного ключа вставленной сущности:

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

context.AddObject(customer);

context.SaveChanges();

var id = customer.Id;

Обратите внимание, что свойство Id заполняется только после вызова SaveChanges() в случае, еслиАтрибут StoreGeneratedPattern имеет значение «Идентичность» или «Вычислено» для столбца идентификатора с автоинкрементом в части хранения модели.

2 голосов
/ 04 августа 2011

В любом случае, если вам нужен идентификатор для какой-либо другой цели ... вызов метода вставки EF для некоторой сущности автоматически возвращает текущий вставленный идентификатор строки ...

var rowId=db.Insert(Entity); 

Я думаю ... плздайте мне знать, если я ошибаюсь .... начинающий в EF ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...