Ни уровень изоляции, ни его укрепление не поддерживаются - PullRequest
1 голос
/ 15 марта 2012

Использование

Microsoft SQL Server 2008 (SP1)

Попытка создать транзакцию следующим образом:

OleDbConnection con;
OleDbTransaction transaction = null;
...
transaction = con.BeginTransaction(IsolationLevel.Snapshot);

И получить ошибку:

System.Data.OleDb.OleDbException (0x8004D008): Neither the isolation level nor a strengthening of it is supported.
   at System.Data.OleDb.OleDbTransaction.ProcessResults(OleDbHResult hr)
   at System.Data.OleDb.OleDbTransaction.BeginInternal(ITransactionLocal

транзакция) в System.Data.OleDb.OleDbConnectionInternal.BeginTransaction (IsolationLevel изоляционный уровень) в System.Data.OleDb.OleDbConnection.BeginTransaction (IsolationLevel изоляционный уровень *

* 1015Я удостоверился, что запустил следующее в SQL Server Management Studio:
ALTER DATABASE mydb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE mydb  SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE mydb  SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE mydb  SET MULTI_USER;

Что-нибудь, что мне не хватает?

1 Ответ

2 голосов
/ 16 марта 2012

Замените OleDb на SqlClient (как предложено Одедом в комментарии).

Или, альтернативно, выполните эту команду SQL перед началом транзакции:

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