У меня есть уникальный ObjectContext
, на котором я выполняю SaveChanges()
. Эта операция занимает некоторое время (~ 60 секунд).
Эта операция выполняется в потоке.
У моего пользователя есть кнопка «Отмена» на экране.
Я могу остановить поток, но если SaveChanges()
уже запущен, я не могу найти его для отмены.
На самом деле я не нашел способа получить доступ к базовой транзакции (у меня также есть проблема уровня изоляции: эта операция блокирует почти все таблицы в базе данных, поэтому приложение не может использоваться другими пользователями).
Будет ли это работать, если я закрою базовое соединение? EF не сможет отправить инструкцию Rollback
, но я думаю, база данных все равно ее выполнит, нет?
Я видел, что могу использовать TransactionScope
, но ему нужен доступ к DTC, и мой хост не очень эффективен, когда дело доходит до редактирования конфигурации сервера / сети.
Поэтому, если существует решение Entity Framework, я бы предпочел это.