簡體   English   中英

TransactionScope 和 SQL 服務器緊湊型

[英]TransactionScope and SQL Server Compact

SQL Server Compact 不支持分布式事務。 因此,如果 TransactionScope 內有多個連接 - 將引發異常。 有什么方法可以設置 ADO.NET 提供程序以將一個連接用於相同的連接字符串?

我知道我可以通過 connection.BeginTransaction 使用通常的事務,但 TransactionScope 對我來說更可取。

更新
抱歉,我沒有提到我使用實體框架,所以我無法控制 SQL 命令。 我可能只是傳遞連接字符串。 由於某種原因,為 TransactionScope 中的一個連接字符串創建了幾個連接對象。

更新的答案(來自此處的代碼示例):

using (var context = new MyContext())
{
    using (var txscope = new TransactionScope())
    {
        context.Connection.Open();
        // do query 1
        // do query 2
    }
}

更新

正如您所說,另一個解決方案是創建一個連接 object 並在 Object 上下文的構造函數中使用它。

有關實體何時打開新連接的更多信息

我的錯誤是我將連接字符串傳遞給ObjectContext 如果我通過連接 object,則只使用一個連接。

暫無
暫無

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

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