Innovabit.DotNet.Interceptors.Transactions.SystemTransactions
2.0.117
dotnet add package Innovabit.DotNet.Interceptors.Transactions.SystemTransactions --version 2.0.117
NuGet\Install-Package Innovabit.DotNet.Interceptors.Transactions.SystemTransactions -Version 2.0.117
<PackageReference Include="Innovabit.DotNet.Interceptors.Transactions.SystemTransactions" Version="2.0.117" />
<PackageVersion Include="Innovabit.DotNet.Interceptors.Transactions.SystemTransactions" Version="2.0.117" />
<PackageReference Include="Innovabit.DotNet.Interceptors.Transactions.SystemTransactions" />
paket add Innovabit.DotNet.Interceptors.Transactions.SystemTransactions --version 2.0.117
#r "nuget: Innovabit.DotNet.Interceptors.Transactions.SystemTransactions, 2.0.117"
#:package Innovabit.DotNet.Interceptors.Transactions.SystemTransactions@2.0.117
#addin nuget:?package=Innovabit.DotNet.Interceptors.Transactions.SystemTransactions&version=2.0.117
#tool nuget:?package=Innovabit.DotNet.Interceptors.Transactions.SystemTransactions&version=2.0.117
Innovabit.DotNet.Interceptors.Transactions.SystemTransactions
TransactionScope provider for
Innovabit.DotNet.Interceptors.Transactions.Abstractions:
[Transactional] methods run inside an ambient System.Transactions scope, so every connection
opened inside them enlists automatically.
Reach for this provider when a unit of work spans more than one connection or data-access library
(Dapper and EF Core, or two databases), or when you need Propagation.RequiresNew.
Usage
services
.AddInterceptors()
.AddTransactionScope();
services.AddScopedWithInterception<IOrderService, OrderService>();
public class OrderService : IOrderService
{
[Transactional(IsolationLevel = IsolationLevel.ReadCommitted)]
public async Task PlaceAsync(Order order, CancellationToken cancellationToken)
{
await _dapperRepository.InsertAsync(order, cancellationToken); // enlists
await _efContext.SaveChangesAsync(cancellationToken); // enlists too
}
}
Scopes are created with TransactionScopeAsyncFlowOption.Enabled, so the ambient transaction flows
across the awaits inside the method.
Provider notes
[Transactional] property |
Behaviour here |
|---|---|
Propagation |
Fully supported. RequiresNew maps to TransactionScopeOption.RequiresNew, Required/Supports/Mandatory/Never to TransactionScopeOption.Required plus the interceptor's own checks. |
IsolationLevel |
Mapped onto System.Transactions.IsolationLevel. Left Unspecified, the scope inherits the ambient/machine default rather than TransactionOptions' own Serializable. |
TimeoutSeconds |
Passed to the scope; 0 uses TransactionManager.DefaultTimeout. |
ReadOnly |
The scope is disposed without Complete(), so the work is rolled back. |
Distributed transactions
A scope that enlists two or more durable resources escalates to a distributed transaction. That
requires MSDTC and is Windows-only — on Linux and macOS the escalation throws
PlatformNotSupportedException. A single connection per scope never escalates, which covers the
common "Dapper and EF Core over the same database" case as long as they share one connection.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
-
net8.0
-
net9.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.117 | 49 | 10/31/2026 |
| 2.0.116 | 96 | 10/26/2026 |
| 2.0.115 | 100 | 10/17/2026 |
| 2.0.114 | 102 | 10/10/2026 |
| 2.0.113 | 111 | 10/3/2026 |
| 2.0.112 | 102 | 9/28/2026 |
| 2.0.111 | 99 | 9/28/2026 |
| 2.0.110 | 108 | 9/27/2026 |
| 2.0.109 | 106 | 9/26/2026 |
| 2.0.108 | 108 | 9/26/2026 |
| 2.0.107 | 110 | 9/26/2026 |
| 2.0.106 | 115 | 9/25/2026 |
| 2.0.105 | 105 | 9/25/2026 |
| 1.0.0.104 | 100 | 9/25/2026 |
| 1.0.0.103 | 98 | 9/25/2026 |
| 1.0.0.102 | 98 | 9/25/2026 |
| 1.0.0.101 | 103 | 9/25/2026 |
| 1.0.0.100 | 110 | 9/25/2026 |
| 1.0.0.99 | 107 | 9/25/2026 |