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
                    
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="Nosabit.Adapters.Persistence.SqlServer.Abstractions" Version="1.2.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nosabit.Adapters.Persistence.SqlServer.Abstractions" Version="1.2.5" />
                    
Directory.Packages.props
<PackageReference Include="Nosabit.Adapters.Persistence.SqlServer.Abstractions" />
                    
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 Nosabit.Adapters.Persistence.SqlServer.Abstractions --version 1.2.5
                    
#r "nuget: Nosabit.Adapters.Persistence.SqlServer.Abstractions, 1.2.5"
                    
#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.
#addin nuget:?package=Nosabit.Adapters.Persistence.SqlServer.Abstractions&version=1.2.5
                    
Install Nosabit.Adapters.Persistence.SqlServer.Abstractions as a Cake Addin
#tool nuget:?package=Nosabit.Adapters.Persistence.SqlServer.Abstractions&version=1.2.5
                    
Install Nosabit.Adapters.Persistence.SqlServer.Abstractions as a Cake Tool

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.

NuGet License: MIT

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:

  1. Instalar este paquete en tu proyecto
  2. Instalar una implementación concreta (por ejemplo, un paquete como Nosabit.Adapters.Persistence.SqlServer.Abstractions)
  3. 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

  1. Desacoplamiento: Separa el código de acceso a datos de tu lógica de negocio
  2. Pruebas unitarias: Facilita la creación de mocks para pruebas
  3. Flexibilidad: Permite cambiar la implementación sin modificar el código que la utiliza
  4. 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 resultados
  • QueryFirstAsync<T>: Define una operación para obtener el primer resultado de una consulta
  • QueryFirstColumsAsync<T>: Define una operación para obtener el primer resultado como diccionario

Ejecuciones

  • ExecuteAsync: Define una operación para ejecutar un procedimiento almacenado
  • ExecuteAsync<T>: Define una operación para ejecutar un SP y obtener un valor escalar
  • ExecuteGetLastInsertAsync<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 resultados
  • QueryMulti: 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 resultado
  • QueryFirstMapAsync<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ón
  • ReactTableQuery<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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last updated
1.2.5 59 4/1/2025
1.2.4 462 3/24/2025
1.2.3 255 3/23/2025
1.2.2 245 3/23/2025
1.2.1 174 3/23/2025
1.2.0 145 3/23/2025
1.1.4 84 3/21/2025
1.1.3 61 3/21/2025
1.1.2 109 3/21/2025
1.1.1 112 3/21/2025
1.1.0 116 3/21/2025