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