NestXRepository.Core 1.0.8

There is a newer version of this package available.
See the version list below for details.
dotnet add package NestXRepository.Core --version 1.0.8
                    
NuGet\Install-Package NestXRepository.Core -Version 1.0.8
                    
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="NestXRepository.Core" Version="1.0.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NestXRepository.Core" Version="1.0.8" />
                    
Directory.Packages.props
<PackageReference Include="NestXRepository.Core" />
                    
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 NestXRepository.Core --version 1.0.8
                    
#r "nuget: NestXRepository.Core, 1.0.8"
                    
#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 NestXRepository.Core@1.0.8
                    
#: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=NestXRepository.Core&version=1.0.8
                    
Install as a Cake Addin
#tool nuget:?package=NestXRepository.Core&version=1.0.8
                    
Install as a Cake Tool

Documentación de Métodos de Acceso a Datos

Esta documentación detalla los métodos disponibles para operaciones de acceso a datos en nuestra biblioteca .NET. La biblioteca ofrece dos enfoques principales para el acceso a datos:

  1. Dapper (DP): Métodos optimizados para consultas SQL directas y alto rendimiento
  2. Entity Framework (EF): Métodos que aprovechan el contexto y funcionalidades de Entity Framework Core

Tabla de Contenidos

Métodos de Consulta

Métodos de Consulta Dapper

Método Descripción Parámetros
Task<IEnumerable<T>> DPQuery(string sql, object? parameters = null) Ejecuta una consulta SQL personalizada y devuelve una colección de entidades. sql: Consulta SQL a ejecutar<br>parameters: Parámetros para la consulta (opcional)
Task<T> DPGet(string? whereExpression = null, object? parameters = null, string? orderBy = null) Obtiene una entidad individual que cumple con la condición especificada. whereExpression: Condición SQL WHERE (opcional)<br>parameters: Parámetros para la condición (opcional)<br>orderBy: Especificación de orden (opcional)
Task<List<T>> DPGetAll(string? whereClause = null, object? parameters = null, int? top = null, string? orderBy = null) Obtiene todas las entidades que cumplen con la condición especificada. whereClause: Condición SQL WHERE (opcional)<br>parameters: Parámetros para la condición (opcional)<br>top: Límite de resultados (opcional)<br>orderBy: Especificación de orden (opcional)
Task<bool> DPExistsAsync(string whereExpression, object? parameters = null) Verifica si existe al menos una entidad que cumpla con la condición especificada. whereExpression: Condición SQL WHERE<br>parameters: Parámetros para la condición (opcional)
Task<(IEnumerable<T> Data, int TotalRecords, int TotalPages)> DPGetPaginatedAsync(int pageNumber, int pageSize, string? whereClause = null, object? parameters = null, int? top = null) Obtiene entidades con paginación. pageNumber: Número de página<br>pageSize: Tamaño de página<br>whereClause: Condición SQL WHERE (opcional)<br>parameters: Parámetros para la condición (opcional)<br>top: Límite de resultados (opcional)
Task<List<T>> DPGetTable(string? whereExpression = null, object? parameters = null) Obtiene una lista de entidades de una tabla. whereExpression: Condición SQL WHERE (opcional)<br>parameters: Parámetros para la condición (opcional)
Task<T> DPGetTableFirst(string? whereExpression = null, object? parameters = null) Obtiene la primera entidad de una tabla que cumpla con la condición. whereExpression: Condición SQL WHERE (opcional)<br>parameters: Parámetros para la condición (opcional)
DataTable DPGetDataTable(string query, object? parameters = null) Ejecuta una consulta SQL y devuelve un DataTable. query: Consulta SQL a ejecutar<br>parameters: Parámetros para la consulta (opcional)

Métodos de Consulta Entity Framework

Método Descripción Parámetros
Task<bool> EFExistsAsync(Expression<Func<T, bool>> whereExpression, CancellationToken cancellationToken = default) Verifica si existe al menos una entidad que cumpla con la expresión de condición. whereExpression: Expresión lambda para la condición<br>cancellationToken: Token de cancelación (opcional)
IQueryable<T> EFQuery(string sqlQuery, CancellationToken cancellationToken = default, params object[] parameters) Ejecuta una consulta SQL y devuelve un IQueryable. sqlQuery: Consulta SQL a ejecutar<br>cancellationToken: Token de cancelación (opcional)<br>parameters: Parámetros para la consulta
Task<List<T>> EFGetAllAsync(Expression<Func<T, bool>>? whereExpression = null, Expression<Func<T, object>>? orderByExpression = null, bool orderByDescending = false, int? top = null, CancellationToken cancellationToken = default, params Expression<Func<T, object>>[] includes) Obtiene todas las entidades que cumplen con la expresión de condición. whereExpression: Expresión lambda para la condición (opcional)<br>orderByExpression: Expresión para ordenar (opcional)<br>orderByDescending: Indicador de orden descendente (opcional)<br>top: Límite de resultados (opcional)<br>cancellationToken: Token de cancelación (opcional)<br>includes: Propiedades a incluir
Task<T?> EFGetFirst(Expression<Func<T, bool>>? whereExpression, CancellationToken cancellationToken = default, params Expression<Func<T, object>>[]? includes) Obtiene la primera entidad que cumple con la expresión de condición. whereExpression: Expresión lambda para la condición (opcional)<br>cancellationToken: Token de cancelación (opcional)<br>includes: Propiedades a incluir (opcional)
Task<(List<T> Data, int TotalRecords, int TotalPages)> EFGetPaginatedAsync(Expression<Func<T, bool>>? whereExpression, int pageNumber, int pageSize, Expression<Func<T, object>>? orderByExpression = null, bool orderByDescending = false, int? top = null, CancellationToken cancellationToken = default, params Expression<Func<T, object>>[] includes) Obtiene entidades con paginación. whereExpression: Expresión lambda para la condición (opcional)<br>pageNumber: Número de página<br>pageSize: Tamaño de página<br>orderByExpression: Expresión para ordenar (opcional)<br>orderByDescending: Indicador de orden descendente (opcional)<br>top: Límite de resultados (opcional)<br>cancellationToken: Token de cancelación (opcional)<br>includes: Propiedades a incluir

Métodos de Manipulación

Métodos de Inserción

Método Descripción Parámetros
Task<Guid> EFAdd(T entities, CancellationToken cancellationToken = default) Agrega una entidad usando Entity Framework y devuelve un Guid. entities: Entidad a agregar<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFAddInt(T entities, CancellationToken cancellationToken = default) Agrega una entidad usando Entity Framework y devuelve un entero. entities: Entidad a agregar<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFAddRange(List<T> entities, CancellationToken cancellationToken = default) Agrega múltiples entidades usando Entity Framework. entities: Lista de entidades a agregar<br>cancellationToken: Token de cancelación (opcional)
Guid DPAdd(T entity) Agrega una entidad usando Dapper y devuelve un Guid. entity: Entidad a agregar
int DPAddInt(T entity) Agrega una entidad usando Dapper y devuelve un entero. entity: Entidad a agregar
int DPAddRange(List<T> entities) Agrega múltiples entidades usando Dapper. entities: Lista de entidades a agregar
int BulkInsertAsync(List<T> data, bool includeForeignKeys = false) Realiza una inserción masiva de datos. data: Lista de entidades a insertar<br>includeForeignKeys: Indica si se deben incluir claves foráneas (opcional)

Métodos de Actualización

Método Descripción Parámetros
Task<int> EFExec(string sqlQuery, CancellationToken cancellationToken = default, params object[] parameters) Ejecuta una consulta SQL para actualización usando Entity Framework. sqlQuery: Consulta SQL a ejecutar<br>cancellationToken: Token de cancelación (opcional)<br>parameters: Parámetros para la consulta
Task<int> EFUpdateWithFK(T entity, CancellationToken cancellationToken = default, params string[] navigationPropertiesToUpdate) Actualiza una entidad incluyendo claves foráneas usando Entity Framework. entity: Entidad a actualizar<br>cancellationToken: Token de cancelación (opcional)<br>navigationPropertiesToUpdate: Propiedades de navegación a actualizar
Task<int> EFUpdate(T entity, CancellationToken cancellationToken = default) Actualiza una entidad usando Entity Framework. entity: Entidad a actualizar<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFUpdateRange(IEnumerable<T> entities, CancellationToken cancellationToken = default) Actualiza múltiples entidades usando Entity Framework. entities: Colección de entidades a actualizar<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFUpdateRangeWithFK(List<T> entities, List<string> navigationProperties, CancellationToken cancellationToken = default) Actualiza múltiples entidades incluyendo claves foráneas usando Entity Framework. entities: Lista de entidades a actualizar<br>navigationProperties: Lista de propiedades de navegación<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFUpdatePartialAsync(Expression<Func<T, bool>> whereExpression, object updateFields, CancellationToken cancellationToken = default) Actualiza parcialmente entidades que cumplen con la expresión de condición. whereExpression: Expresión lambda para la condición<br>updateFields: Campos a actualizar<br>cancellationToken: Token de cancelación (opcional)
Task<int> DPUpdate(T entity, Expression<Func<T, bool>> whereExpression) Actualiza una entidad usando Dapper. entity: Entidad a actualizar<br>whereExpression: Expresión lambda para la condición
Task<int> DPUpdateWithFK(T entity, List<string> navigationProperties) Actualiza una entidad incluyendo claves foráneas usando Dapper. entity: Entidad a actualizar<br>navigationProperties: Lista de propiedades de navegación
Task<int> DPUpdatePartialAsync(object updateFields, string whereExpression, object? parameters = null) Actualiza parcialmente entidades que cumplen con la condición. updateFields: Campos a actualizar<br>whereExpression: Condición SQL WHERE<br>parameters: Parámetros para la condición (opcional)
Task<int> DPUpdateRange(List<T> entities) Actualiza múltiples entidades usando Dapper. entities: Lista de entidades a actualizar
Task<int> DPUpdateRangeWithFK(List<T> entities, List<string> navigationProperties) Actualiza múltiples entidades incluyendo claves foráneas usando Dapper. entities: Lista de entidades a actualizar<br>navigationProperties: Lista de propiedades de navegación

Métodos de Eliminación

Método Descripción Parámetros
Task<int> DPDelete(T entity) Elimina una entidad usando Dapper. entity: Entidad a eliminar
Task<int> DPDeleteRange(IEnumerable<T> entities) Elimina múltiples entidades usando Dapper. entities: Colección de entidades a eliminar
Task<int> EFSoftDelete(T entity, string? userDeleted = "", CancellationToken cancellationToken = default) Realiza un borrado lógico de una entidad usando Entity Framework. entity: Entidad a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFSoftDeleteRange(IEnumerable<T> entities, string? userDeleted = "", CancellationToken cancellationToken = default) Realiza un borrado lógico de múltiples entidades usando Entity Framework. entities: Colección de entidades a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFSoftDeleteWithFK(T entity, string? userDeleted = "", CancellationToken cancellationToken = default) Realiza un borrado lógico de una entidad incluyendo claves foráneas usando Entity Framework. entity: Entidad a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)<br>cancellationToken: Token de cancelación (opcional)
Task<int> EFSoftDeleteRangeWithFK(IEnumerable<T> entities, string? userDeleted = "", CancellationToken cancellationToken = default) Realiza un borrado lógico de múltiples entidades incluyendo claves foráneas usando Entity Framework. entities: Colección de entidades a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)<br>cancellationToken: Token de cancelación (opcional)
Task<int> DPSoftDelete(T entity, string? userDeleted = "") Realiza un borrado lógico de una entidad usando Dapper. entity: Entidad a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)
Task<int> DPSoftDeleteWithFK(T entity, string? userDeleted = "") Realiza un borrado lógico de una entidad incluyendo claves foráneas usando Dapper. entity: Entidad a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)
Task<int> DPSoftDeleteRange(IEnumerable<T> entities, string? userDeleted = "") Realiza un borrado lógico de múltiples entidades usando Dapper. entities: Colección de entidades a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)
Task<int> DPSoftDeleteRangeWithFK(IEnumerable<T> entities, string? userDeleted = "") Realiza un borrado lógico de múltiples entidades incluyendo claves foráneas usando Dapper. entities: Colección de entidades a eliminar<br>userDeleted: Usuario que realiza la eliminación (opcional)

Procedimientos Almacenados

Método Descripción Parámetros
Task<List<T>> DPCallStoredProc(string procName, object? parameters = null) Ejecuta un procedimiento almacenado y devuelve una lista de entidades. procName: Nombre del procedimiento<br>parameters: Parámetros para el procedimiento (opcional)
Task<int> DPExecuteStoredProc(string procName, object? parameters = null) Ejecuta un procedimiento almacenado y devuelve un entero (normalmente el número de filas afectadas). procName: Nombre del procedimiento<br>parameters: Parámetros para el procedimiento (opcional)
Task<T> StoreProcedureValueAsync(string name, Dictionary<string, object> parameters, DbType? DbType, string ParameterReturn, int size = 0) Ejecuta un procedimiento almacenado y devuelve un valor predeterminado ya sea int o string o el que se especifique name: Nombre del procedimiento<br>parameters: Parámetros para el procedimiento (opcional)<br>DbType: Tipo de dato para el valor a retornar<br>ParameterReturn: Nombre del parametro a retornar <br>size: Tamaño del parametro a retornar (opcional)

Ejemplos de Uso

Consultas Básicas

// Ejemplo con Dapper: Obtener todos los registros de una tabla
var allRecords = await DPGetAll();

// Ejemplo con Entity Framework: Obtener registros que cumplen una condición
var activeUsers = await EFGetAllAsync(u => u.IsActive);

// Consulta con paginación usando Dapper
var paginatedResult = await DPGetPaginatedAsync(1, 10, "IsActive = @IsActive", new { IsActive = true });

Operaciones de Manipulación

// Insertar un registro usando Entity Framework
var newEntityId = await EFAdd(newEntity);

// Actualizar un registro con Dapper
await DPUpdate(updatedEntity, e => e.Id == updatedEntity.Id);

// Eliminación lógica con Entity Framework
await EFSoftDelete(entityToDelete, currentUser);

Procedimientos Almacenados

// Ejecutar un procedimiento almacenado con parámetros
var results = await DPCallStoredProc("GetCustomersByRegion", new { RegionId = 5 });

// Ejecutar un procedimiento almacenado que realice alguna operación
var rowsAffected = await DPExecuteStoredProc("UpdateInventoryLevels", new { ProductId = 10, Quantity = 50 });

Notas Adicionales

  • Los métodos con prefijo DP utilizan Dapper, un micro-ORM de alto rendimiento.
  • Los métodos con prefijo EF utilizan Entity Framework Core, un ORM completo.
  • Los métodos con sufijo WithFK incluyen operaciones con claves foráneas.
  • Los métodos SoftDelete realizan un borrado lógico (establecen un flag) en lugar de eliminar físicamente los registros.
  • El parámetro genérico T representa el tipo de entidad con la que se trabaja.

Dependencias y Atribuciones

Este paquete requiere .NET 9 o superior para funcionar correctamente.

Este proyecto utiliza las siguientes bibliotecas de código abierto:

Requisitos del Sistema

  • .NET 9.0 o superior
  • Compatible con aplicaciones web, de escritorio y servicios
  • Fue inicialmente destinado a base de datos SQL server
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.  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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 144 7/7/2025
1.0.9 148 7/2/2025
1.0.8 146 6/25/2025
1.0.7 107 5/31/2025
1.0.6 159 5/22/2025
1.0.5 147 5/20/2025
1.0.4 246 5/15/2025
1.0.3 234 5/14/2025
1.0.2 230 5/14/2025
1.0.1 234 5/13/2025
1.0.0 250 5/13/2025