Почему Database.SqlQuery завершает транзакцию, которую я начал с Database.BeginTransaction? - PullRequest
0 голосов
/ 27 октября 2019

Это невероятно. Я использую EF6 и звоню Database.BeginTransaction, что является «рекомендуемым» способом для начала транзакции. Затем я вызываю Database.SqlQuery<T>, чтобы вызвать хранимую процедуру, которая вносит некоторые изменения, а затем возвращает некоторые данные. После этого вызова Database.CurrentTransaction имеет значение null. Это уничтожило это. Почему он это делает?

Я, конечно, храню DbContextTransaction, возвращаемую BeginTransaction, и когда я вызываю «Commit» для него, я получаю сообщение об ошибке, в котором говорится, что базовый поставщик потерпел неудачу при фиксации, и что соединение установленозначение NULL. Я полагаю, что это происходит в результате SqlQuery уничтожения CurrentTransaction. Это не имеет смысла.

...