如何在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一起使用?
似乎不需要显式传递它,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();
}