NHibernate TransactionScope-Problem mit Oracle 11g
Der folgende Codeausschnitt funktioniert gut mit SQL Server 2008 (SP1), aber mit Oracle 11g löst der Aufruf von session.BeginTransaction () eine Ausnahme mit der Meldung "Die Verbindung ist bereits Teil einer lokalen oder verteilten Transaktion" aus (Stapelablaufverfolgung siehe unten) ). "NHibernate.Driver.OracleDataClientDriver" verwenden.
Hat jemand anderes in diese laufen?
using (var scope = new TransactionScope())
{
using (var session = sessionFactory.OpenSession())
using (var transaction = session.BeginTransaction())
{
// do what you need to do with the session
transaction.Commit();
}
scope.Complete();
}
Exception at: at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel) at NHibernate.Transaction.AdoTransaction.Begin() at NHibernate.AdoNet.ConnectionManager.BeginTransaction() at NHibernate.Impl.SessionImpl.BeginTransaction() at MetraTech.BusinessEntity.DataAccess.Persistence.StandardRepository.SaveInstances(List`1& dataObjects) in S:\MetraTech\BusinessEntity\DataAccess\Persistence\StandardRepository.cs:line 3103 Inner error message was: Connection is already part of a local or a distributed transaction Inner exception at: at Oracle.DataAccess.Client.OracleConnection.BeginTransaction(IsolationLevel isolationLevel) at Oracle.DataAccess.Client.OracleConnection.BeginDbTransaction(IsolationLevel isolationLevel) at System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction() at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)