PlumX.Core.DomainBase
1.0.0-preview.7
dotnet add package PlumX.Core.DomainBase --version 1.0.0-preview.7
NuGet\Install-Package PlumX.Core.DomainBase -Version 1.0.0-preview.7
<PackageReference Include="PlumX.Core.DomainBase" Version="1.0.0-preview.7" />
<PackageVersion Include="PlumX.Core.DomainBase" Version="1.0.0-preview.7" />
<PackageReference Include="PlumX.Core.DomainBase" />
paket add PlumX.Core.DomainBase --version 1.0.0-preview.7
#r "nuget: PlumX.Core.DomainBase, 1.0.0-preview.7"
#:package PlumX.Core.DomainBase@1.0.0-preview.7
#addin nuget:?package=PlumX.Core.DomainBase&version=1.0.0-preview.7&prerelease
#tool nuget:?package=PlumX.Core.DomainBase&version=1.0.0-preview.7&prerelease
PlumX.Core.DomainBase
NuGet 包 ID:
PlumX.Core.DomainBase
定位
PlumX.Core.DomainBase 定义 DDD 领域实体、聚合根、值对象、仓储、审计和事务协调契约。EF Core 与 Dapper 的可执行适配器拆分到 PlumX.Core.DomainBase.EntityFramework 和 PlumX.Core.DomainBase.Dapper,因此本项目是领域基础与共享工具的核心边界。
目标框架与依赖
- 目标框架:
net8.0 - 项目引用:Common
- 主要依赖:Newtonsoft.Json
接入方式
业务实体可继承 BasicEntity<TKey> 或带创建、更新、有效性字段的派生基类,实现 IAggregationRoot/IValueObject。使用 EF 仓储、审计或事务时,额外引用并注册对应 adapter 项目。
主要 API
IEntity、BasicEntity*:实体主键和审计字段契约。IAggregationRoot、IValueObject、IRepository:领域边界契约。IBaseRepository、ICustomRepository:仓储操作契约,由 EF adapter 提供实现。AuditableAttribute、NotAuditableAttribute、IAuditUserProvider:审计标记与用户来源。TransactionCoordinator、TransactionMultiDBContext:多仓储/多 DbContext 事务协调。ObjectExtend、领域工具扩展:对象复制、数据库和 Dapper 辅助契约。
配置与使用边界
本项目不直接绑定数据库连接字符串,也不自动注册 DbContext。审计只有在上下文继承 AuditDbContextBase 并提供 IAuditUserProvider 时才会生效;事务协调不等同于跨服务分布式事务协议。PlumX.Core.Mapper 已移除,不应作为依赖添加。
运维说明
事务协调器在失败时回滚已登记事务并保留原始异常,但调用方仍需明确 SaveChanges、提交和释放边界。新增实体或仓储时应保持聚合边界,不要把业务请求上下文放入 DomainBase。
完整使用示例
领域实体与聚合根的最小定义见 模块使用示例。
| 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 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 was computed. 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. |
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
- PlumX.Core.Common (>= 1.0.0-preview.7)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on PlumX.Core.DomainBase:
| Package | Downloads |
|---|---|
|
PlumX.Core.DomainBase.Dapper
Package Description |
|
|
PlumX.Core.DomainBase.EntityFramework
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.7 | 64 | 9/2/2026 |
| 1.0.0-preview.6 | 61 | 9/1/2026 |
| 1.0.0-preview.5 | 71 | 8/31/2026 |
| 1.0.0-preview.4 | 84 | 8/19/2026 |
| 1.0.0-preview.3 | 80 | 8/18/2026 |
| 1.0.0-preview.1 | 76 | 8/14/2026 |