我想将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一起使用?
答案 0 :(得分:0)
您似乎不需要明确传递它,从3.0及更高版本的Enterprise Library中内置了支持。它查找当前事务并在可用时使用它。在David Hayden's site找到答案。
答案 1 :(得分:0)
请尝试以下操作:
Database db = null;
object returnValue;
using (TransactionScope transaction = new TransactionScope())
{
db = DatabaseFactory.CreateDatabase(MainConnection);
returnValue = db.ExecuteScalar(procedureName, parameterValues);
transaction.Complete();
}