EAC.Infrastructure.Persistence
0.1.0-rc.4
dotnet add package EAC.Infrastructure.Persistence --version 0.1.0-rc.4
NuGet\Install-Package EAC.Infrastructure.Persistence -Version 0.1.0-rc.4
<PackageReference Include="EAC.Infrastructure.Persistence" Version="0.1.0-rc.4" />
<PackageVersion Include="EAC.Infrastructure.Persistence" Version="0.1.0-rc.4" />
<PackageReference Include="EAC.Infrastructure.Persistence" />
paket add EAC.Infrastructure.Persistence --version 0.1.0-rc.4
#r "nuget: EAC.Infrastructure.Persistence, 0.1.0-rc.4"
#:package EAC.Infrastructure.Persistence@0.1.0-rc.4
#addin nuget:?package=EAC.Infrastructure.Persistence&version=0.1.0-rc.4&prerelease
#tool nuget:?package=EAC.Infrastructure.Persistence&version=0.1.0-rc.4&prerelease
EAC.Infrastructure.Persistence
Desde 2026-10-09, Native AOT queda fuera del alcance por decisión del usuario. No se declara compatibilidad ni se exige su gate. Las referencias históricas no constituyen soporte vigente; build y tests ordinarios siguen siendo obligatorios.
Desarrollo desde el workspace
La conversión reutilizable ResultJsonConverter<TValue, TRepresentation> está
disponible mediante ProjectReference, sin publicar una nueva versión. Recibe
metadata JSON explícita, una factory Result y la proyección de escritura.
El servicio conserva el formato y las reglas de reconstitución.
El proyecto referencia el código fuente de eac-foundation, situado como
repositorio hermano. La solución incluye esa dependencia para compilarla con
la misma configuración. Antes de ejecutar scripts/ci.sh, deben estar presentes
ambos repositorios; no se utiliza el paquete publicado como alternativa local.
Repositorio propietario del NuGet EAC.Infrastructure.Persistence, incluidos los contratos neutrales de stores y resultados paginados de consultas de persistencia.
Estado actual: alcance completado hasta PERS-011 con 0.1.0-rc.3 publicado. La promoción estable PERS-012 sigue aplazada.
- Índice documental
- Guía de consumo y configuración
- Diseño
- Plan de implementación
- Arquitectura transversal
Instalación, configuración y consumo
<PackageReference Include="EAC.Infrastructure.Persistence" Version="0.1.0-rc.3" />
El registro básico declara stores tipados y no requiere configuración ambiental:
services.AddEacPersistence(stores => stores.AddStore<OrderCommandStore>(
StoreRole.Command,
owner: "orders",
connectionName: "OrderPostgreSql",
technology: "EntityFrameworkCore"));
Para enlazar referencias a valores de conexión suministrados externamente:
services.AddEacPersistence(
builder.Configuration,
stores => stores.AddStore<OrderCommandStore>(
StoreRole.Command,
"orders",
"OrderPostgreSql",
"EntityFrameworkCore"));
Configuración completa de las dos formas admitidas:
{
"Eac": {
"Persistence": {
"Connections": {
"OrderPostgreSql": {
"SecretKey": "ConnectionStrings:OrderPostgreSql"
},
"SharedElasticCluster": {
"EndpointKey": "Search:Elastic:Endpoint",
"CredentialKey": "Search:Elastic:Credential"
}
}
}
}
}
Equivalencia mediante variables de entorno:
Eac__Persistence__Connections__OrderPostgreSql__SecretKey=ConnectionStrings:OrderPostgreSql
Eac__Persistence__Connections__SharedElasticCluster__EndpointKey=Search:Elastic:Endpoint
Eac__Persistence__Connections__SharedElasticCluster__CredentialKey=Search:Elastic:Credential
| Opción | Obligatoria | Regla |
|---|---|---|
Connections:{name}:SecretKey |
alternativa | clave de configuración de una conexión completa |
Connections:{name}:EndpointKey |
alternativa | clave de configuración de un endpoint |
Connections:{name}:CredentialKey |
no | solo se admite junto con EndpointKey; puede omitirse con workload identity |
Cada store del manifiesto debe encontrar una conexión lógica con el mismo
nombre. Una conexión usa SecretKey o EndpointKey, nunca ambas; las claves
solo admiten rutas de configuración acotadas y no valores inline. Una sección
inválida impide el startup. Los cambios requieren reiniciar el proceso.
La configuración programática posterior al binding tiene precedencia:
services.AddEacPersistence(
builder.Configuration,
ConfigureStores,
options => options.Connections["OrderPostgreSql"].SecretKey =
"Secrets:Orders:Primary");
PersistenceOptions contiene referencias, nunca connection strings,
credenciales ni endpoints reales. Esos valores proceden de variables de
entorno, workload identity o un proveedor de secretos y los resuelve el
adaptador propietario. Stores, roles, tecnologías, entidades y mappings
permanecen en código. Registrar el núcleo no activa drivers, conexiones,
workers, Inbox ni Outbox.
| 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
- EAC.Foundation (>= 0.1.0-rc.4)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on EAC.Infrastructure.Persistence:
| Package | Downloads |
|---|---|
|
EAC.Infrastructure.Persistence.EntityFrameworkCore
Provider-neutral Entity Framework Core persistence adapter for EAC applications. |
|
|
EAC.Infrastructure.Persistence.MongoDB
MongoDB persistence adapter for EAC applications. |
|
|
EAC.Infrastructure.Persistence.Marten
Marten persistence adapter for EAC applications. |
|
|
EAC.Infrastructure.Persistence.EntityFrameworkCore.SqlServer
SQL Server persistence adapter for EAC applications using Microsoft.Data.SqlClient. |
|
|
EAC.Infrastructure.Persistence.EntityFrameworkCore.PostgreSQL
PostgreSQL persistence adapter for EAC applications using Npgsql. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-rc.4 | 93 | 10/23/2026 |
| 0.1.0-rc.3 | 465 | 8/21/2026 |
| 0.1.0-rc.2 | 82 | 8/21/2026 |
| 0.1.0-rc.1 | 81 | 8/19/2026 |
| 0.1.0-beta.1 | 80 | 8/19/2026 |
| 0.1.0-alpha.2 | 103 | 8/19/2026 |