Как мне не дать OleDbConnection попытаться подключиться к распределенной транзакции?
Я использую OleDB для подключения к файлу Excel, используя эту строку подключения
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES"""
Но когда я делаю это (который находится внутри TransactionScope())
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
...
}
Я получаю следующую ошибку
Интерфейс ITransactionLocal не поддерживается поставщиком "Microsoft.ACE.OLEDB.12.0". Локальные транзакции недоступны у текущего провайдера.
Как заставить OleDbConnection не пытаться подключиться к распределенной транзакции? Класс SqlConnection имеет свойство ConnectionString, называемое Enlist, но я не могу найти эквивалентную конфигурацию или метод для OleDB.
1 ответ
Решение
В строке подключения добавьте следующий код: ";OLE DB Services=-4;"