2012-01-24 58 views
0

我想在企業庫5.0中使用System.Transactions.Transaction。企業庫允許傳遞具有Execute *功能的System.Data.Common.DbTransaction類型。它試圖將System.Transactions.Transaction強制轉換爲System.Data.Common.DbTransaction。如何使用Enterprise Library 5.0實現使用System.Transactions.Transaction?

代碼:

Database db = null; 
object returnValue; 
Transaction ambientTransaction = Transaction.Current; 

db = DatabaseFactory.CreateDatabase(MainConnection); 
returnValue = db.ExecuteScalar((DbTransaction)ambientTransaction, procedureName, parameterValues); 

我將如何使用使用System.Transactions.Transaction與企業庫5.0?

+0

問你的ExecuteScalar哪種類型的查詢,你做什麼或希望通過..插入,更新,刪除......?什麼不看db.ExecuteNonQuery,如果這是可訪問的..? – MethodMan

回答

1

看起來你不需要明確地傳遞它,支持從3.0版或更高版本構建到企業庫中。它查找當前事務並在可用時使用它。在David Hayden's site找到答案。

0

嘗試以下操作:

Database db = null; 
object returnValue; 

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

基本上我做了什麼。我發現我不必通過交易。 – Josh

相關問題