Fdw.Services.EtlMappers.Dynamic
1.1.0-rc.1
dotnet add package Fdw.Services.EtlMappers.Dynamic --version 1.1.0-rc.1
NuGet\Install-Package Fdw.Services.EtlMappers.Dynamic -Version 1.1.0-rc.1
<PackageReference Include="Fdw.Services.EtlMappers.Dynamic" Version="1.1.0-rc.1" />
<PackageVersion Include="Fdw.Services.EtlMappers.Dynamic" Version="1.1.0-rc.1" />
<PackageReference Include="Fdw.Services.EtlMappers.Dynamic" />
paket add Fdw.Services.EtlMappers.Dynamic --version 1.1.0-rc.1
#r "nuget: Fdw.Services.EtlMappers.Dynamic, 1.1.0-rc.1"
#:package Fdw.Services.EtlMappers.Dynamic@1.1.0-rc.1
#addin nuget:?package=Fdw.Services.EtlMappers.Dynamic&version=1.1.0-rc.1&prerelease
#tool nuget:?package=Fdw.Services.EtlMappers.Dynamic&version=1.1.0-rc.1&prerelease
Fdw.Services.EtlMappers.Dynamic
ETL row mapper using compiled expression trees for efficient field access.
Overview
This package provides an ETL row mapper implementation that uses compiled expression trees to generate optimized field accessors at initialization time. The DynamicStructMapper compiles IDataReader.IsDBNull/GetValue calls into delegates via System.Linq.Expressions, reducing per-row overhead. Unlike the pooled mapper, it allocates one dictionary per row (estimated allocations per row = 1) but avoids virtual dispatch costs on field access.
Installation
<PackageReference Include="Fdw.Services.EtlMappers.Dynamic" Version="x.y.z" />
Key Types
DynamicStructMapper- IEtlRowMapper implementation using compiled expression treesDynamicStructMapperType- TypeOption registered as "Dynamic" in EtlRowMapperTypesDynamicStructMapperFactory- Factory for creating DynamicStructMapper instancesDynamicStructMapperConfiguration- Configuration for the dynamic mapperCompiledFieldAccessor- Compiled expression tree accessor for efficient field reads
Usage
// Automatic registration via EtlRowMapperTypes
EtlRowMapperTypes.Configure(services, configuration, loggerFactory);
EtlRowMapperTypes.Register(services, loggerFactory);
// Use "Dynamic" mapper type in configuration
// "EtlMappers:Dynamic": { ... }
Related Packages
- Fdw.Services.EtlMappers.Abstractions - Interfaces and base classes
- Fdw.Services.EtlMappers - Provider and registration infrastructure
- Fdw.Services.EtlMappers.Pooled - Alternative mapper using dictionary pooling
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Cronos (>= 0.13.0)
- Fdw.Data.Abstractions (>= 1.1.0-rc.1)
- Fdw.Results (>= 1.1.0-rc.1)
- Fdw.Services.EtlMappers (>= 1.1.0-rc.1)
- Fdw.Services.EtlMappers.Abstractions (>= 1.1.0-rc.1)
- FluentValidation (>= 12.1.1)
- Microsoft.AspNetCore.Cryptography.KeyDerivation (>= 10.0.10)
- Microsoft.AspNetCore.Http (>= 2.3.10)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.10)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.10)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.10)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Identity.Core (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Microsoft.IdentityModel.Tokens (>= 8.22.0)
- Polly.Core (>= 8.6.6)
- Serilog (>= 4.3.1)
- System.ComponentModel.Annotations (>= 5.0.0)
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-rc.1 | 35 | 9/15/2026 |
| 1.0.1-rc.4 | 56 | 9/2/2026 |
| 1.0.1-rc.3 | 57 | 9/2/2026 |
| 1.0.1-rc.2 | 51 | 9/1/2026 |
| 1.0.1-rc.1 | 57 | 8/31/2026 |
| 1.0.0-rc.10 | 54 | 8/28/2026 |
| 1.0.0-rc.9 | 61 | 8/25/2026 |
| 1.0.0-rc.8 | 60 | 8/25/2026 |
| 1.0.0-rc.6.1 | 59 | 8/20/2026 |
| 1.0.0-rc.6 | 77 | 8/20/2026 |
| 1.0.0-rc.5 | 65 | 8/19/2026 |
| 1.0.0-rc.4 | 60 | 8/19/2026 |
| 1.0.0-rc.3 | 74 | 8/17/2026 |
| 1.0.0-rc.1 | 66 | 8/10/2026 |