簡體   English   中英

如何使用TransactionScope類在不啟動事務的情況下使用相同的連接?

[英]How to use TransactionScope class to use same connection without starting a transaction?

我有一個存儲過程A ,該存儲過程A創建一個全局臨時表 (前綴## ),並在其中插入一些臨時數據。 然后,我有一個使用此數據的存儲過程B 因此,必須在同一會話(連接)中調用AB 否則臨時表將被刪除。

我的數據庫框架不斷使用如下構造:

public T GetSomeData()
{
    using (var connection = OpenConnection())
    {
        // ...
    }
}

現在,我需要確保在相同的連接上調用AB 我可以使用TransactionScope類輕松完成此操作,但這也意味着我想要的事務。

using (var transaction = new TransactionScope())
{
    A();

    // Now B can read the temporary table created by A.
    // However, a transaction has been started which causes problems!
    B();

    // I don't want a transaction...
    // transaction.Complete();
}

我的問題是: 如何使用這種設計模式創建“連接范圍”?

使用相同的DataReader讀取多個結果集。

using(var reader = command.ExecuteReader())
{
    while(reader.Read())
    {
        A();
    }
    reader.NextResult();

    while(reader.Read())
    {
        B();
    }
}

相同的連接用於獲取兩個結果集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM