[英]TransactionScope with Membership and Roles calls in same block (way to use only one connection?)
[英]Is there a way to use TransactionScope with an existing connection?
我有一些代碼就像建議使用TransactionScope一樣,但有一個環境連接而不是環境事務。
有沒有辦法將TransactionScope對象與現有連接一起使用,或者.Net框架中是否有替代方法用於此目的?
事實上,有一種方法。
connection.EnlistTransaction(Transaction.Current)
它是有效的,如果沒有必要,它不會促使事務分發(與文檔所說的相反)
HTH
要將連接登記到TransactionScope,您需要在其連接字符串中指定'Enlist=true'
,並在該TransactionScope對象的范圍內打開連接。
您可以在現有連接上使用SqlConnection.BeginTransaction
。
更新 :你可以像這樣使用BeginTransaction
:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
// Start a local transaction.
transaction = connection.BeginTransaction("SampleTransaction");
// Must assign both transaction object and connection
// to Command object for a pending local transaction
command.Connection = connection;
command.Transaction = transaction;
...
...
}
經過更多的研究,我的問題的答案結果是:
不,在實例化TransactionScope對象后需要打開連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.