.net 核心框架中 System.Transaction 程序集的 TransactionScope 的替代方案
Alternative to TransactionScope of System.Transaction assembly in .net core framework
System.Transaction 程序集目前不是 .net 核心框架的一部分(参见 https://github.com/dotnet/corefx/issues/2949)。在我的应用程序(asp.net 核心 mvc)中,我需要使用 TransactionScope 进行事务处理。
问题:
是否有适用于 .net 核心框架的替代事务处理?我尝试使用 Castle.Transactions 作为替代方案,目前也不支持。
更新 2
.NET Core 2.0 现已发布。你可以使用这个 API。参见 https://docs.microsoft.com/en-us/dotnet/api/system.transactions.transactionscope?view=netcore-2.0
更新
System.Transactions 将在
网络核心 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();
}
}
只是想在这里发表评论,以防有人在研究这个问题时遇到这个 post。我使用 Dapper 运行 在 .net core 2.1 上 运行domly,默认情况下包括 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>
System.Transaction 程序集目前不是 .net 核心框架的一部分(参见 https://github.com/dotnet/corefx/issues/2949)。在我的应用程序(asp.net 核心 mvc)中,我需要使用 TransactionScope 进行事务处理。
问题:
是否有适用于 .net 核心框架的替代事务处理?我尝试使用 Castle.Transactions 作为替代方案,目前也不支持。
更新 2 .NET Core 2.0 现已发布。你可以使用这个 API。参见 https://docs.microsoft.com/en-us/dotnet/api/system.transactions.transactionscope?view=netcore-2.0
更新 System.Transactions 将在 网络核心 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();
}
}
只是想在这里发表评论,以防有人在研究这个问题时遇到这个 post。我使用 Dapper 运行 在 .net core 2.1 上 运行domly,默认情况下包括 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>