Quantum.Data.Common
1.0.1
dotnet add package Quantum.Data.Common --version 1.0.1
NuGet\Install-Package Quantum.Data.Common -Version 1.0.1
<PackageReference Include="Quantum.Data.Common" Version="1.0.1" />
<PackageVersion Include="Quantum.Data.Common" Version="1.0.1" />
<PackageReference Include="Quantum.Data.Common" />
paket add Quantum.Data.Common --version 1.0.1
#r "nuget: Quantum.Data.Common, 1.0.1"
#:package Quantum.Data.Common@1.0.1
#addin nuget:?package=Quantum.Data.Common&version=1.0.1
#tool nuget:?package=Quantum.Data.Common&version=1.0.1
Quantum.Data.Common
Quantum.Data.Common es una librería de utilidades de alto rendimiento para el ecosistema Quantum. Proporciona un conjunto de potentes métodos de extensión y helpers para acelerar las tareas comunes de manipulación y transformación de datos, actuando como un puente entre los datos crudos y los objetos de dominio.
✨ Características Principales (v1.0.0)
- Transformador de
DataSet
Inteligente: Un método de extensión.TransformAsync()
que convierteDataSet
(ideal para resultados de servicios ASMX) en estructuras de diccionarios modernas, eligiendo automáticamente la mejor estrategia de paralelismo para un rendimiento óptimo. - Mapeadores de Alto Rendimiento: Extensiones para
IDataReader
,DataTable
yDataRow
que convierten los datos a listas de DTOs (.ToList<T>()
) usando un caché de reflexión para minimizar la sobrecarga. - Mapeador de Objetos Flexible (
.MapTo<T>()
): Un mapeador simple (object-to-object) que copia propiedades por nombre y permite remapear nombres diferentes usando el atributo[MapFrom]
deQuantum.Core
. - Conversión a Dinámicos (
.ToDynamic()
): Convierte fácilmente unDictionary<string, object>
en unExpandoObject
para un acceso a datos más limpio (fila.Nombre
en lugar defila["Nombre"]
). - Utilidades de CSV y SQL: Helpers para exportar colecciones a formato CSV y para sanear strings para su uso seguro en cláusulas
LIKE
.
🚀 Instalación
Instala el paquete a través de la consola del Administrador de Paquetes NuGet:
Install-Package FFuentes.Quantum.Data.Common -Version 1.0.0
O mediante la CLI de .NET:
dotnet add package FFuentes.Quantum.Data.Common --version 1.0.0
💡 Ejemplos de Uso
Transformar un DataSet
a un Diccionario Moderno
// Recibes un DataSet desde un ejecutor (ej. de un ASMX)
DataSet rawDataSet = await executor.GetDataSetAsync(command);
// Usas la extensión para convertirlo a una estructura limpia
var modernData = await rawDataSet.TransformAsync();
var clientList = modernData["Clientes"]; // Accedes a la tabla por su nombre
// Conviertes una fila a un objeto dinámico para un acceso fácil
dynamic firstClient = clientList.First().ToDynamic();
Console.WriteLine($"ID: {firstClient.Id}, Nombre: {firstClient.Nombre}");
Mapear Objetos con Nombres de Propiedad Diferentes
// Modelo de la base de datos
public class UsuarioDb { public string NombreCompleto { get; set; } }
// Modelo para la API
public class UsuarioApi
{
[MapFrom("NombreCompleto")] // Atributo de Quantum.Core
public string Nombre { get; set; }
}
// En tu código, la conversión es una sola línea
var dbModel = new UsuarioDb { NombreCompleto = "Ana Soto" };
var apiModel = dbModel.MapTo<UsuarioApi>(); // apiModel.Nombre es "Ana Soto"
Exportar una Colección a CSV
using Quantum.Data.Common.Helpers;
List<ProductoDto> misProductos = _repositorio.ObtenerProductos();
string csvReporte = CsvHelper.ExportToCsv(misProductos);
File.WriteAllText("reporte_productos.csv", csvReporte);
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
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. |
-
net9.0
- Quantum.Data.Core (>= 1.1.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Quantum.Data.Common:
Package | Downloads |
---|---|
Quantum.Web
Librería con helpers, middleware y clases base para acelerar el desarrollo de APIs web robustas con ASP.NET Core dentro del ecosistema Quantum. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Versión 1.0.0: Lanzamiento inicial de la librería Quantum.Data.Common.
- Extensiones de alto rendimiento para DataSet, DataTable, DataRow y IDataReader.
- Mapeador de objetos simple con soporte para el atributo [MapFrom].
- Conversores a objetos dinámicos y helpers para CSV.
- Utilidad para sanear strings para cláusulas LIKE de SQL.