Есть ли простой способ отключения автоматической фиксации при использовании ODP.NET? Я хочу начать транзакции с помощью команды SET TRANSACTION, не используя Connection.BeginTransaction ни TransactionScope. Также я хочу, чтобы любая начинающая транзакция DML (если не была запущена), но не фиксировала изменения, пока я не выдаю команду COMMIT. Я знаю, что другие поставщики Oracle (JDBC или Devart) поддерживают это, но я хотел бы добиться такого же поведения с ODP.NET.ODP.NET - отключить автоматическое совершение
Я также обнаружил, что есть частное поле, вероятно контролирующее это в управляемой версии ODP.NET, но оно скрыто в реализации физического соединения, к которому трудно получить доступ через экземпляр OracleConnection. Он также кажется, что в неуправляемой версии этот параметр находится вне сборки Oracle.DataAccess.dll.
Не мой , но: _Чтобы выполнить явную транзакцию, вы сначала приобретаете объект OracleTransaction из объекта OracleConnection, вызывая метод BeginTransaction. Обратите внимание, что это единственный способ получить объект транзакции_. Отсюда: [http://www.oracle.com/au/products/database/o39odpnet-087387.html](http://www.oracle.com/au/products/database/o39odpnet-087387.html) –
Это простое описание того, как управлять транзакциями с использованием методов вызова объекта подключения. Я не хочу этого. Я хочу, чтобы транзакция не выполнялась при выпуске первого DML без явного запуска транзакции с использованием BeginTransaction/new TransactionScope. В основном поведение SQL * Plus по умолчанию. – Husqvik
Есть ли причина, по которой вам не нравится 'Connection.BeginTransaction'? –