System.Transaction程序集目前不是.net核心框架的一部分(参见https://github.com/dotnet/corefx/issues/2949)。在我的应用程序(asp.net core mvc)中,我需要使用TransactionScope进行事务处理。
是否存在可与.net核心框架一起使用的备用事务处理?我曾尝试使用Castle.Transactions作为替代方案,目前也不支持。
答案 0 :(得分:17)
更新2 .NET Core 2.0现已推出。您可以使用此API。见https://docs.microsoft.com/en-us/dotnet/api/system.transactions.transactionscope?view=netcore-2.0
<强>更新强> System.Transactions将在 NET Core 2.0。有关即将发布的版本的详细信息,请参阅https://github.com/dotnet/core/blob/master/roadmap.md。
原始回答
System.Transactions(或环境事务)未在.NET Core 1.0.0中实现,但可能在将来的版本中实现。
您可以使用显式交易解决此问题。
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
// transaction.Commit();
// transaction.Rollback();
}
}
答案 1 :(得分:4)
只是想在这里发表评论,以防任何人在研究此错误时被此帖子所困扰。我在使用Dapper的.net core 2.1上随机遇到了此问题,默认情况下包含System.Data.SqlClient 4.5.0。通过nuget独立添加版本System.Data.SqlClient 4.5.1的工作。因此,似乎该问题已从4.5.1开始修复。
以下是我的csproj文件的相关部分:
<ItemGroup>
<PackageReference Include="Dapper" Version="1.50.5" />
<PackageReference Include="System.Data.SqlClient" Version="4.5.1" />
</ItemGroup>