Я использую Npgsql 2.0.11 в .NET 4.0 для изменения базы данных PostgreSQL 9.0.Программа вносит множество изменений в базу данных, все в рамках одной транзакции.
Непосредственно перед фиксацией я запускаю инструкцию SELECT, которая иногда не срабатывает (например, с таймаутом).Я проглатываю исключение и продолжаю в любом случае совершать транзакцию.Нет ошибки, поэтому кажется, что все работает, но на самом деле база данных вообще не была изменена!
Я предполагаю, что неудачный SELECT откатил всю транзакцию.Могу ли я предотвратить это (т. Е. Сделать транзакцию все еще зафиксированной) или, по крайней мере, обнаружить эту ситуацию и выдать исключение, чтобы пользователь знал, что фиксация не удалась?
Я знаю, что в этом конкретном случае я мог бы просто переместитьSELECT вне транзакции, но меня больше волнует решение этого для общего случая.Наличие коммита, а не коммита - довольно серьезная проблема, и я хочу убедиться, что он не останется незамеченным.