如何在Enterprise Library 5.0中实现使用System.Transactions.Transactio

本文关键字:实现 System Transactio Transactions Enterprise Library | 更新日期: 2023-09-27 18:21:13

我想将System.Transactions.Transaction与Enterprise Library 5.0一起使用。企业库允许传递带有Execute*函数的System.Data.Common.DbTransaction类型。它尝试将System.Transactions.Transaction强制转换为System.Data.Common.DbTransaction,但没有成功。

代码:

Database db = null;
object returnValue;
Transaction ambientTransaction = Transaction.Current;
db = DatabaseFactory.CreateDatabase(MainConnection);
returnValue = db.ExecuteScalar((DbTransaction)ambientTransaction, procedureName, parameterValues);

如何将System.Transactions.Transaction与Enterprise Library 5.0一起使用?

如何在Enterprise Library 5.0中实现使用System.Transactions.Transactio

似乎不需要显式传递它,3.0及更高版本的Enterprise Library中内置了支持。它查找当前事务并在可用时使用它。在David Hayden的网站上找到了答案。

尝试以下操作:

Database db = null;
object returnValue;
using (TransactionScope transaction = new TransactionScope())
{
    db = DatabaseFactory.CreateDatabase(MainConnection);
    returnValue = db.ExecuteScalar(procedureName, parameterValues);
    transaction.Complete();
}
相关文章: