Nosabit.Adapters.Persistence.SqlServer.Abstractions
1.2.5
dotnet add package Nosabit.Adapters.Persistence.SqlServer.Abstractions --version 1.2.5
NuGet\Install-Package Nosabit.Adapters.Persistence.SqlServer.Abstractions -Version 1.2.5
<PackageReference Include="Nosabit.Adapters.Persistence.SqlServer.Abstractions" Version="1.2.5" />
<PackageVersion Include="Nosabit.Adapters.Persistence.SqlServer.Abstractions" Version="1.2.5" />
<PackageReference Include="Nosabit.Adapters.Persistence.SqlServer.Abstractions" />
paket add Nosabit.Adapters.Persistence.SqlServer.Abstractions --version 1.2.5
#r "nuget: Nosabit.Adapters.Persistence.SqlServer.Abstractions, 1.2.5"
#addin nuget:?package=Nosabit.Adapters.Persistence.SqlServer.Abstractions&version=1.2.5
#tool nuget:?package=Nosabit.Adapters.Persistence.SqlServer.Abstractions&version=1.2.5
Nosabit.Adapters.Persistence.SqlServer.Abstractions
Una biblioteca de abstracciones para acceso a datos SQL Server que define interfaces para interactuar con bases de datos mediante Dapper. Este paquete proporciona solo las definiciones de interfaces que pueden ser implementadas en paquetes concretos, facilitando la inyección de dependencias y las pruebas unitarias en aplicaciones .NET.
Instalación
Package Manager
Install-Package Nosabit.Adapters.Persistence.SqlServer.Abstractions
.NET CLI
dotnet add package Nosabit.Adapters.Persistence.SqlServer.Abstractions
PackageReference
<PackageReference Include="Nosabit.Adapters.Persistence.SqlServer.Abstractions" />
Características principales
- Abstracciones para acceso a SQL Server: Define interfaces claras para separar la implementación del acceso a datos
- Contratos para operaciones Dapper: Establece contratos para operaciones basadas en Dapper
- Definiciones para procedimientos almacenados: Interfaces para ejecutar y obtener resultados de SPs
- Contratos para mapeo de entidades: Define operaciones para el mapeo de resultados a objetos tipados
- Abstracciones para consultas múltiples: Interfaces para manejar múltiples conjuntos de resultados
- Interfaces para ReactTable: Definiciones para facilitar la integración con componentes React
- Contratos asíncronos: Todas las interfaces definen operaciones asíncronas
- Soporte para parámetros de salida: Definiciones para trabajar con parámetros de salida en SPs
Uso de las abstracciones
Este paquete contiene solo las interfaces y no las implementaciones. Para utilizarlo, deberás:
- Instalar este paquete en tu proyecto
- Instalar una implementación concreta (por ejemplo, un paquete como
Nosabit.Adapters.Persistence.SqlServer.Abstractions
) - Usar inyección de dependencias para trabajar con las interfaces
Configuración en el contenedor de IoC
// En Program.cs o Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Registrar la implementación de ISqlDataAccess (desde otro paquete)
services.AddScoped<ISqlDataAccess, ConcreteImplementation>();
}
Ejemplo de uso en un servicio
public class ClienteService
{
private readonly ISqlDataAccess _db;
public ClienteService(ISqlDataAccess db)
{
_db = db;
}
// Tus métodos de servicio que utilizan la interfaz ISqlDataAccess
// La implementación concreta se inyectará en tiempo de ejecución
}
Ventajas de usar las abstracciones
- Desacoplamiento: Separa el código de acceso a datos de tu lógica de negocio
- Pruebas unitarias: Facilita la creación de mocks para pruebas
- Flexibilidad: Permite cambiar la implementación sin modificar el código que la utiliza
- Mantenibilidad: Mejora la estructura de tu aplicación siguiendo principios SOLID
Métodos definidos en la interfaz
Consultas básicas
QueryAsync<T>
: Define una operación para ejecutar una consulta y mapear resultadosQueryFirstAsync<T>
: Define una operación para obtener el primer resultado de una consultaQueryFirstColumsAsync<T>
: Define una operación para obtener el primer resultado como diccionario
Ejecuciones
ExecuteAsync
: Define una operación para ejecutar un procedimiento almacenadoExecuteAsync<T>
: Define una operación para ejecutar un SP y obtener un valor escalarExecuteGetLastInsertAsync<T>
: Define una operación para obtener el último registro insertado
Consultas múltiples
QueryMulti<A,B>
: Define una operación para manejar múltiples conjuntos de resultadosQueryMulti
: Define una operación para obtener resultados como colecciones dinámicas
Mapeo personalizado
QueryMapAsync<A,B>
: Define una operación para mapear dos tipos a un tipo de resultadoQueryFirstMapAsync<A,B>
: Define una operación para mapear el primer resultado de dos tipos
ReactTable
ReactTableQuery<T>
: Define una operación compatible con ReactTable para paginaciónReactTableQuery<T,A,B>
: Define una operación ReactTable con mapeo de tipos múltiples
Beneficios de utilizar estas abstracciones
- Principio de inversión de dependencias: Programa hacia interfaces, no implementaciones
- Mejor testabilidad: Facilita la creación de mocks para pruebas unitarias
- Flexibilidad arquitectónica: Permite cambiar la implementación sin afectar al código cliente
- Desacoplamiento: Reduce las dependencias directas entre componentes
- Reutilización de código: Estandariza las operaciones de acceso a datos
Integración con otros paquetes Nosabit
Este paquete de abstracciones está diseñado para trabajar con otros paquetes de la familia Nosabit:
- Nosabit.Core: Proporciona utilidades y tipos necesarios como
DBEntity
- NetReact.Server: Incluye los DTOs para integración con ReactTable
- Nosabit.Adapters.Persistence.SqlServer.Abstractions: Implementación concreta de estas abstracciones
Requisitos
- .NET 6.0 o superior
- Dapper (como dependencia de la implementación)
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. |
-
net9.0
- Dapper (>= 2.1.66)
- Nosabit.Core (>= 1.2.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Nosabit.Adapters.Persistence.SqlServer.Abstractions:
Package | Downloads |
---|---|
Nosabit.Adapters.Persistence.SqlServer.RepositoryPattern.Abstractions
Biblioteca de abstracciones para implementar el patrón Repository con SQL Server en aplicaciones .NET. Define una interfaz genérica IRepo con operaciones CRUD y consultas complejas para entidades, incluyendo mapeo personalizado, consultas con parámetros dinámicos y soporte para múltiples esquemas y procedimientos almacenados. Esta biblioteca facilita la separación entre la lógica de acceso a datos y la lógica de negocio, mejorando la testabilidad y mantenibilidad del código. |
|
Nosabit.Adapters.Persistence.SqlServer.RepositoryPattern
Package Description |
|
Nosabit.Adapters.Persistence.SqlServer
Nosabit.Adapters.Persistence.SqlServer es una implementación completa del paquete de abstracciones para acceso a datos SQL Server utilizando Dapper. Proporciona una implementación eficiente y segura para ejecutar procedimientos almacenados, realizar consultas complejas, mapeo de múltiples entidades y soporte para operaciones paginadas. Incluye características avanzadas como protección de cadenas de conexión, manejo inteligente de errores y métodos de extensión para la inyección de dependencias. Optimiza el desarrollo de aplicaciones .NET con un acceso a datos robusto y tipado. |
GitHub repositories
This package is not used by any popular GitHub repositories.