NestXRepository.Core
1.0.8
There is a newer version of this package available.
See the version list below for details.
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" />
<PackageReference Include="NestXRepository.Core" />
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
#tool nuget:?package=NestXRepository.Core&version=1.0.8
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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:
- Dapper (DP): Métodos optimizados para consultas SQL directas y alto rendimiento
- 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:
- Entity Framework Core - Copyright (c) .NET Foundation y contribuyentes, bajo licencia MIT
- Dapper - Copyright (c) Sam Saffron, Marc Gravell, Nick Craver, bajo licencia MIT
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 | 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. 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.
-
net9.0
- Dapper (>= 2.1.66)
- Microsoft.AspNetCore.OpenApi (>= 9.0.5)
- Microsoft.EntityFrameworkCore (>= 9.0.5)
- Microsoft.EntityFrameworkCore.SqlServer (>= 9.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.