IDbTransaction и IDisposable

#ado.net #transactions

#ado.net #транзакции

Вопрос:

MSDN не определяет, что Dispose следует делать для транзакций. Итак, я предполагаю, что ADO.NET драйверы не делают в нем ничего особенного (кроме очистки ресурсов)?

Было бы замечательно, если бы он вызывался, Rollback если ни один из Commit и Rollback не вызывался ранее Dispose .

Ответ №1:

Поведение (хотя это может быть официально не задокументировано) заключается в откате (), если успешный вызов Commit() не произошел до вызова Dispose() . Это можно проверить, разобрав систему .NET.Сборки данных.

Комментарии:

1. Я только что проверил исходный код npgsql. Он делает то же самое для своей реализации транзакции.