Как я могу получить новый идентификатор объекта, сгенерированный последовательностью БД? - PullRequest
3 голосов
/ 20 июля 2010

У меня есть таблица с последовательностью и триггером, поэтому она создает новый идентификатор при вставке в БД.

Как я могу получить новый идентификатор объекта перед вызовом SaveChanges ()?

Мне нужен этот идентификатор для связи между новым объектом и другими объектами.

Я хочу сделать это перед вызовом SaveChanges, потому что хочу иметь возможность отката.

1 Ответ

6 голосов
/ 20 июля 2010

Нельзя получить без звонка SaveChanges(). Думаю об этом. Идентификатор приходит из БД. SaveChanges() - это первое, что вызывает связь с БД.

Если вы хотите отменить, у вас есть несколько вариантов:

  • Во многих случаях вам не нужно знать идентификатор на стороне клиента при вставке. Достаточно просто создать отношения.
  • Используйте сгенерированный клиентом идентификатор, такой как GUID.
  • Используйте TransactionScope для «реальной» транзакции БД.
  • Откат (DeleteObject) вместо отката.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...