Разве я не могу назвать хранимую процедуру от Платформы Объекта в области транзакций?

У меня есть метод, который использует Платформу Объекта, чтобы сделать, некоторые изменяются/вставляют в различных объектах, вся эта внутренняя часть единственная область транзакций. Эти изменения работают очень хорошо.

Моя проблема имеет, начался, когда я должен был использовать хранимую процедуру посреди этих операций. Процедура делает только вставку в одной таблице и не имеет никакого явного объявления транзакций. Я попытался объявить транзакцию и фиксировать там также, но проблемой было то же.

Разве я не могу назвать хранимую процедуру от Платформы Объекта (EF1) в области транзакций?

Это исключение выдается только после транзакции. Завершенный (), когда блок использования закрывается.

The transaction has aborted.

   at System.Transactions.TransactionStatePromotedAborted.PromotedTransactionOutcome(InternalTransaction tx)
   at System.Transactions.TransactionStatePromotedEnded.EndCommit(InternalTransaction tx)
   at System.Transactions.CommittableTransaction.Commit()
   at System.Transactions.TransactionScope.InternalDispose()
   at System.Transactions.TransactionScope.Dispose()

Внутреннее исключение:

The transaction operation cannot be performed because there are pending requests working on this transaction.

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest)
   at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
   at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
   at System.Data.SqlClient.SqlDelegatedTransaction.SinglePhaseCommit(SinglePhaseEnlistment enlistment)

ОБНОВЛЕНИЕ: Запущенный щедрость

Сегодня я не делаю этого вызова процедуры через Платформу Объекта больше. Я называю процедуру через ADO.net, это было моим обходным решением. Но проблема продолжается, я должен должен быть выполнить некоторые вызовы в ближайшем будущем, возможно, в области транзакций.

7
задан Victor Rodrigues 26 January 2010 в 03:37
поделиться