在asp.net core 2 app中使用TransactionScope不支持参与Ambient事务

时间:2017-12-26 06:41:52

标签: ado.net asp.net-core-2.0

在TransactionScope中打开sql连接时,会给出“不支持在Ambient事务中登记”错误。我在asp.net core 2 app中使用ado.net。

        using (var ts = new TransactionScope())
        {
            try
            {
                Connection.Open();
                repository.Insert(entity);                    
                ts.Complete();
            }

            catch (Exception ex)
            {
                ts.Dispose();
            }
            finally
            {
                Connection.Close();
            }
        }

2 个答案:

答案 0 :(得分:0)

将PackageReference替换为Microsoft.AspNetCore.All与各个包引用,然后将PackageReference添加到“System.Data.SqlClient”,Version =“4.3.1”。

以下是适用于我的解决方案(供参考)的链接(Dapper is throwing System.Data.SqlClient.SqlConnection exception after upgrading System.Data.SqlClient to version 4.5.0-preview2)。

这适用于System.Data.SqlClient版本高达4.3.1。,4.4.0及更高版本会产生相同的错误。

答案 1 :(得分:0)

如果在使用.Net Standard时遇到此问题,则可以添加对System.Data.SqlClient的最新引用,此问题将消失。