XiHan.Framework.Persistence.Abstractions
5.0.0-preview.2
Prefix Reserved
dotnet add package XiHan.Framework.Persistence.Abstractions --version 5.0.0-preview.2
NuGet\Install-Package XiHan.Framework.Persistence.Abstractions -Version 5.0.0-preview.2
<PackageReference Include="XiHan.Framework.Persistence.Abstractions" Version="5.0.0-preview.2" />
<PackageVersion Include="XiHan.Framework.Persistence.Abstractions" Version="5.0.0-preview.2" />
<PackageReference Include="XiHan.Framework.Persistence.Abstractions" />
paket add XiHan.Framework.Persistence.Abstractions --version 5.0.0-preview.2
#r "nuget: XiHan.Framework.Persistence.Abstractions, 5.0.0-preview.2"
#:package XiHan.Framework.Persistence.Abstractions@5.0.0-preview.2
#addin nuget:?package=XiHan.Framework.Persistence.Abstractions&version=5.0.0-preview.2&prerelease
#tool nuget:?package=XiHan.Framework.Persistence.Abstractions&version=5.0.0-preview.2&prerelease
XiHan.Framework.Persistence.Abstractions
关于
XiHan.Framework.Persistence.Abstractions 定义持久化的契约:仓储 IRepository<TEntity, TKey>、查询 EntityQuery<T>、工作单元 IUnitOfWork、实体登记与标识生成。一般由 Provider 包带入,业务代码只依赖本包,换 Provider 不改代码;写自定义 Provider 时直接引用。
主要特性
- 仓储是聚合的集合视图,可恢复的失败以
Result返回,批量方法逐项返回结果 - 工作单元由框架在 Transaction 阶段自动开启、提交或回滚,数据库事务延迟到第一次写入才开
- 用
[EntityIndex]在实体类上声明索引,各 Provider 建出同名索引 - 标识生成:GUID v7,可选雪花
long标识
如何使用
安装
dotnet add package XiHan.Framework.Persistence.Abstractions --prerelease
使用
先登记实体并装配一个 Provider(Standard 自带内存实现),再注入仓储读写。仓储只在调用的工作单元里工作。
builder.Services.AddRepository<Order, Guid>();
builder.AddXiHan(x => x.UseStandardProfile());
public sealed class OrderCatalog(IRepository<Order, Guid> orders)
{
public Task<IReadOnlyList<Order>> LargestAsync(int minAmount, CancellationToken ct)
=> orders.ListAsync(
EntityQuery.All<Order>()
.Where(Specification.Of<Order>(o => o.Amount >= minAmount))
.OrderBy(static o => o.Amount, descending: true)
.Page(0, 20),
ct);
}
需要 long 标识时显式装配雪花特性;多实例部署要给每个实例配置互不相同的 XiHan:Persistence:Snowflake:WorkerId,或装配跨进程的分布式缓存:
builder.AddXiHan(x => x.UseStandardProfile().UseFeature<SnowflakeIdFeature>());
主要类型
此库提供的主要类型:
IRepository<TEntity, TKey>:查找、查询、计数、新增、更新、删除及批量版本EntityQuery<T>:过滤、排序、分页IUnitOfWork:事务边界与当前租户EntityIndexAttribute:声明索引IIdGenerator<TKey>、SnowflakeIdFeature:标识生成与雪花标识
更多文档
相关包
- 内存实现:XiHan.Framework.Persistence.InMemory
- EF Core 实现:XiHan.Framework.Persistence.EntityFrameworkCore
- SqlSugar 实现:XiHan.Framework.Persistence.SqlSugar
- 一致性套件:XiHan.Framework.Persistence.Conformance
反馈与贡献
XiHan.Framework.Persistence.Abstractions 以 MIT 许可证 开源。欢迎到 GitHub 仓库 提交问题和贡献。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.14)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Diagnostics.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Options (>= 10.0.14)
- System.Threading.RateLimiting (>= 10.0.14)
- XiHan.Framework.Caching.Abstractions (>= 5.0.0-preview.2)
- XiHan.Framework.Domain (>= 5.0.0-preview.2)
- XiHan.Framework.Kernel (>= 5.0.0-preview.2)
- XiHan.Framework.Localization.Abstractions (>= 5.0.0-preview.2)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on XiHan.Framework.Persistence.Abstractions:
| Package | Downloads |
|---|---|
|
XiHan.Framework.Messaging.Abstractions
曦寒框架消息抽象包 |
|
|
XiHan.Framework.Profiles.Standard
曦寒框架 Standard 组合包 |
|
|
XiHan.Framework.Persistence.Conformance
曦寒框架持久化一致性测试套件 |
|
|
XiHan.Framework.Persistence.InMemory
曦寒框架持久化的内存默认实现 |
|
|
XiHan.Framework.Workflow.InMemory
曦寒框架工作流的内存默认实现 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 5.0.0-preview.2 | 0 | 11/6/2026 |
| 5.0.0-preview.1 | 79 | 11/4/2026 |