Sparkdo.Uow.Abstractions
1.0.1
.NET 10.0
This package targets .NET 10.0. The package is compatible with this framework or higher.
.NET Standard 2.0
This package targets .NET Standard 2.0. The package is compatible with this framework or higher.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Sparkdo.Uow.Abstractions --version 1.0.1
NuGet\Install-Package Sparkdo.Uow.Abstractions -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sparkdo.Uow.Abstractions" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.Uow.Abstractions" Version="1.0.1" />
<PackageReference Include="Sparkdo.Uow.Abstractions" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sparkdo.Uow.Abstractions --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Sparkdo.Uow.Abstractions, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Sparkdo.Uow.Abstractions@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sparkdo.Uow.Abstractions&version=1.0.1
#tool nuget:?package=Sparkdo.Uow.Abstractions&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Sparkdo.Uow.Abstractions
Sparkdo 工作单元抽象库,提供工作单元模式的核心接口和基础类实现。
功能特性
- 工作单元模式核心接口定义
- 事务管理抽象
- 数据库 API 容器抽象
- 事件发布机制抽象
- 与 Sparkdo 框架无缝集成
安装
<PackageReference Include="Sparkdo.Uow.Abstractions" Version="x.x.x" />
核心组件
IUnitOfWork
工作单元核心接口,定义了工作单元的基本功能:
Id: 工作单元唯一标识符Items: 附加项集合Options: 配置选项Outer: 外层工作单元引用SaveChangesAsync(): 保存更改CompleteAsync(): 完成工作单元(提交事务)RollbackAsync(): 回滚工作单元Reserve(): 保留工作单元- 事件:
Failed(失败事件)、Disposed(释放事件)
IUnitOfWorkManager
工作单元管理器接口,用于创建和管理工作单元:
Current: 获取当前工作单元BeginAsync(): 开始新的工作单元ReserveAsync(): 保留工作单元BeginReserved(): 开始已保留的工作单元TryBeginReserved(): 尝试开始已保留的工作单元
IUnitOfWorkOptions
工作单元配置选项接口:
IsTransactional: 是否启用事务IsolationLevel: 事务隔离级别Timeout: 超时时间(毫秒)
容器接口
IDatabaseApiContainer: 数据库 API 容器ITransactionApiContainer: 事务 API 容器
事件系统
IUnitOfWorkEventPublisher: 工作单元事件发布器UnitOfWorkEventRecord: 工作单元事件记录UnitOfWorkEventArgs: 工作单元事件参数UnitOfWorkFailedEventArgs: 工作单元失败事件参数
扩展性
该库提供了完整的工作单元抽象实现,可以通过以下方式扩展:
- 实现具体的
IUnitOfWork来提供特定数据库的工作单元实现 - 实现
IDatabaseApi和ITransactionApi来提供数据库和事务操作 - 实现
IUnitOfWorkEventPublisher来处理工作单元事件发布 - 通过自定义特性或拦截器来增强工作单元功能
代码结构说明
本项目包含以下主要组件:
核心接口
IUnitOfWork: 工作单元核心接口IUnitOfWorkManager: 工作单元管理器接口IUnitOfWorkOptions: 工作单元配置选项接口
容器接口
IDatabaseApiContainer: 数据库 API 容器接口ITransactionApiContainer: 事务 API 容器接口
事件相关
IUnitOfWorkEventPublisher: 工作单元事件发布器接口NullUnitOfWorkEventPublisher: 空事件发布器实现UnitOfWorkEventRecord: 工作单元事件记录类UnitOfWorkEventArgs: 工作单元事件参数类UnitOfWorkFailedEventArgs: 工作单元失败事件参数类
特性
UnitOfWorkAttribute: 工作单元特性,用于声明方法或类需要工作单元支持
模块配置
SparkdoUowAbstractionsModule: 工作单元抽象模块配置
资源
- 本地化资源文件支持
所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Core (>= 1.0.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
- System.Runtime.Loader (>= 4.3.0)
- System.Text.Json (>= 10.0.0)
-
net10.0
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Core (>= 1.0.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Sparkdo.Uow.Abstractions:
| Package | Downloads |
|---|---|
|
Sparkdo.Uow
Sparkdo 框架的工作单元模式实现。提供完整的工作单元功能实现,包括事务管理、事件发布、数据库 API 管理等核心功能。 |
|
|
Sparkdo.Caching
Sparkdo 缓存库,提供分布式缓存功能实现 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.2-preview.4 | 89 | 2/8/2026 |
| 1.0.2-preview.3 | 123 | 2/1/2026 |
| 1.0.2-preview.2 | 141 | 1/31/2026 |
| 1.0.2-preview.1 | 202 | 12/4/2025 |
| 1.0.1 | 2,110 | 11/27/2025 |
| 1.0.0 | 2,032 | 11/25/2025 |
| 1.0.0-preview.5 | 121 | 10/24/2025 |