Entity Framework: прерывание запуска SaveChanges - PullRequest
0 голосов
/ 19 мая 2010

У меня есть уникальный ObjectContext, на котором я выполняю SaveChanges(). Эта операция занимает некоторое время (~ 60 секунд). Эта операция выполняется в потоке.

У моего пользователя есть кнопка «Отмена» на экране.
Я могу остановить поток, но если SaveChanges() уже запущен, я не могу найти его для отмены.
На самом деле я не нашел способа получить доступ к базовой транзакции (у меня также есть проблема уровня изоляции: эта операция блокирует почти все таблицы в базе данных, поэтому приложение не может использоваться другими пользователями).

Будет ли это работать, если я закрою базовое соединение? EF не сможет отправить инструкцию Rollback, но я думаю, база данных все равно ее выполнит, нет?

Я видел, что могу использовать TransactionScope, но ему нужен доступ к DTC, и мой хост не очень эффективен, когда дело доходит до редактирования конфигурации сервера / сети. Поэтому, если существует решение Entity Framework, я бы предпочел это.

1 Ответ

0 голосов
/ 19 мая 2010

сохраняет ли ваш SaveChanges () несколько обновлений? Можно ли обновить и сохранить каждый в отдельности?

Тогда, если вы находитесь внутри транзакции, и пользователь отменяет транзакцию, у вас будет больше детализации в сохранениях.

...