Получите значение Identity в платформе сущностей и все еще в состоянии выполнить откат - PullRequest
1 голос
/ 29 июля 2011

Я хочу получить значение столбца Identity после вставки строки в БД с использованием структуры объекта. Поэтому мне нужно вызвать context.savechanges(), но если что-то пойдет не так после обновления строки и получения значения столбца идентификаторов, я хочу выполнить полный откат.

Возможно ли это как-то в EF 4.0.? Я знаю, как получить значение столбца идентификаторов, и при откате я имею в виду, что вставленная строка должна быть удалена. Мой столбец идентификаторов - это автоматически сгенерированный тип bigint.

1 Ответ

1 голос
/ 29 июля 2011

Как насчет использования TransactionScope

using (var scope = new TransactionScope())
{
    using (var context = new MyContext())
    {
        // Insert data

        context.SaveChanges();

        // Do something with retrieved Id
    }

    // If something goes wrong and following command is not called
    // transaction will rollback
    scope.Complete(); // Commit
}

Если вы не позвоните Complete транзакция будет откат.

...