Установка транзакции LINQ для указанного запроса (без SqlCommand) - PullRequest
1 голос
/ 25 февраля 2011

Мне было трудно правильно указать заголовок вопроса - по сути, я получаю сообщение об ошибке: «ExecuteReader требует, чтобы у команды была транзакция, когда назначенное команде соединение находится в ожидающей локальной транзакции. Команда не была инициализирована. " для ситуации, подобной этой:

using (db = getDbContext())
{
   var results = (from t in db.table
                  select t.column).SingleOrDefault();
}

Как говорится в ошибке, все это уже заключено в другую транзакцию, которую я пытаюсь использовать и для этого запроса.

Как я могу указать транзакцию, используя этот формат запроса?

Я пытался создать SqlCommand("select column from table", myconnection, mytransaction), который работает, но я бы предпочел использовать синтаксис LINQ для преимуществ intellisense (среди прочих), так как фактический запрос довольно сложен

Большое спасибо, это раздражало меня часами.

Alex

1 Ответ

2 голосов
/ 25 февраля 2011

Вы можете установить транзакцию в сам контекст:

db.Transaction = theTransaction;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...