Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Enterprise Library 5.0实现use System.Transactions.Transaction?_C#_.net_Transactions_Enterprise Library - Fatal编程技术网

C# 如何使用Enterprise Library 5.0实现use System.Transactions.Transaction?

C# 如何使用Enterprise Library 5.0实现use System.Transactions.Transaction?,c#,.net,transactions,enterprise-library,C#,.net,Transactions,Enterprise Library,我想将System.Transactions.Transaction与企业库5.0一起使用。企业库允许通过Execute*函数传递System.Data.Common.DbTransaction类型。它试图将System.Transactions.Transaction转换为System.Data.Common.DbTransaction,但运气不佳 代码: Database db = null; object returnValue; Transaction ambientTransactio

我想将System.Transactions.Transaction与企业库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);

如何在企业库5.0中使用System.Transactions.Transaction

看起来您不需要显式地传递它,支持是从3.0及更高版本内置到企业库中的。它查找当前事务并在可用时使用它。在上找到答案

尝试以下操作:

Database db = null;
object returnValue;

using (TransactionScope transaction = new TransactionScope())
{
    db = DatabaseFactory.CreateDatabase(MainConnection);
    returnValue = db.ExecuteScalar(procedureName, parameterValues);
    transaction.Complete();
}

询问您的执行官您正在执行或希望通过的查询类型。。插入、更新、删除。。。?如果db.ExecuteOnQuery是可访问的,那么什么不可以查看呢?基本上就是我做的。我发现我不必通过交易。