PlumX.Core.DomainBase 1.0.0-preview.7

This is a prerelease version of PlumX.Core.DomainBase.
dotnet add package PlumX.Core.DomainBase --version 1.0.0-preview.7
                    
NuGet\Install-Package PlumX.Core.DomainBase -Version 1.0.0-preview.7
                    
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="PlumX.Core.DomainBase" Version="1.0.0-preview.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PlumX.Core.DomainBase" Version="1.0.0-preview.7" />
                    
Directory.Packages.props
<PackageReference Include="PlumX.Core.DomainBase" />
                    
Project file
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 PlumX.Core.DomainBase --version 1.0.0-preview.7
                    
#r "nuget: PlumX.Core.DomainBase, 1.0.0-preview.7"
                    
#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 PlumX.Core.DomainBase@1.0.0-preview.7
                    
#: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=PlumX.Core.DomainBase&version=1.0.0-preview.7&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=PlumX.Core.DomainBase&version=1.0.0-preview.7&prerelease
                    
Install as a Cake Tool

PlumX.Core.DomainBase

NuGet 包 ID:PlumX.Core.DomainBase

定位

PlumX.Core.DomainBase 定义 DDD 领域实体、聚合根、值对象、仓储、审计和事务协调契约。EF Core 与 Dapper 的可执行适配器拆分到 PlumX.Core.DomainBase.EntityFrameworkPlumX.Core.DomainBase.Dapper,因此本项目是领域基础与共享工具的核心边界。

目标框架与依赖

  • 目标框架:net8.0
  • 项目引用:Common
  • 主要依赖:Newtonsoft.Json

接入方式

业务实体可继承 BasicEntity<TKey> 或带创建、更新、有效性字段的派生基类,实现 IAggregationRoot/IValueObject。使用 EF 仓储、审计或事务时,额外引用并注册对应 adapter 项目。

主要 API

  • IEntityBasicEntity*:实体主键和审计字段契约。
  • IAggregationRootIValueObjectIRepository:领域边界契约。
  • IBaseRepositoryICustomRepository:仓储操作契约,由 EF adapter 提供实现。
  • AuditableAttributeNotAuditableAttributeIAuditUserProvider:审计标记与用户来源。
  • TransactionCoordinatorTransactionMultiDBContext:多仓储/多 DbContext 事务协调。
  • ObjectExtend、领域工具扩展:对象复制、数据库和 Dapper 辅助契约。

配置与使用边界

本项目不直接绑定数据库连接字符串,也不自动注册 DbContext。审计只有在上下文继承 AuditDbContextBase 并提供 IAuditUserProvider 时才会生效;事务协调不等同于跨服务分布式事务协议。PlumX.Core.Mapper 已移除,不应作为依赖添加。

运维说明

事务协调器在失败时回滚已登记事务并保留原始异常,但调用方仍需明确 SaveChanges、提交和释放边界。新增实体或仓储时应保持聚合边界,不要把业务请求上下文放入 DomainBase。

完整使用示例

领域实体与聚合根的最小定义见 模块使用示例

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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