Repository navigation
v3.5.0
Dapper FluentMap v3.5.0
Dapper FluentMap 3.5.0 extends generated materialization, advanced mapping capabilities, and Dommel persistence integration while strengthening API compatibility and regression testing.
This release focuses on improving mapping flexibility, reducing reflection requirements in supported scenarios, and making runtime behavior more predictable.
What's New
Generated Materialization and Native AOT
- Introduced reflection-free
GeneratedParametersfor parameterized queries using strict generated materialization. - Expanded generated materializer support to accept additional reader columns that do not conflict with explicitly mapped members.
- Improved diagnostics for missing, duplicate, ambiguous, and incompatible columns.
- Added contextual
FluentMapConfigurationExceptionerrors for generated value-conversion failures. - Expanded Native AOT smoke tests and provider compatibility coverage.
Strict generated materialization provides a controlled path for supported scenarios. Full Native AOT compatibility is not claimed.
Advanced Mapping Capabilities
- Added three-input multi-mapping with multiple validated
splitOnboundaries. - Introduced per-segment mapping profiles and asynchronous execution.
- Improved null-child handling and isolated runtime support.
- Added explicit
ConstructUsing(...)factory strategies for constructing entities from one to four mapped values. - Unified two-input and three-input multi-mapping through a shared segment materialization pipeline.
These changes provide more control over complex query results and immutable domain models.
Dommel Write Converters
Introduced InsertMapped* and UpdateMapped* operations that apply configured property converters during persistence.
The new operations preserve:
- Insert/update property exclusions
- Read-only and computed property behavior
- Existing Dapper type-handler precedence
Write conversion applies to the new mapped operations, not automatically to every standard Dapper or Dommel write.
API Compatibility and Diagnostics
- Introduced nullable reference annotations across public projects without changing CLR method signatures.
- Added checked-in public API baselines for all distributed assemblies.
- Integrated API compatibility validation into CI.
- Added analyzer diagnostic
DFM016to identify duplicate explicit construction strategies.
Quality, Testing, and Release Reliability
- Added report-only compatibility canaries for detecting potential dependency compatibility changes.
- Introduced materialization benchmark regression reports with machine-readable results.
- Expanded tests for generated materialization, construction strategies, and mapping edge cases.
- Improved release recovery to preserve release tags and prevent unsafe partial-publication retries.
- Added Codecov integration and refined code quality analysis.
Documentation
- Reorganized the README and detailed usage documentation.
- Improved migration guidance from FluentMap 2.x to 3.x.
- Added Brazilian Portuguese migration and usage guides.
- Updated documentation to clarify supported APIs, generated mapping behavior, and compatibility boundaries.
Compatibility
The release maintains the existing netstandard2.0 consumer targets and supported dependency ranges:
- Dapper:
>= 2.1.79and< 3.0.0 - Dommel:
>= 3.5.3and< 4.0.0
The certified provider matrix for this release covers SQLite, SQL Server, PostgreSQL, MySQL, and MariaDB.
Legacy global mapping APIs remain available. Isolated runtime configuration and advanced generated mapping APIs are opt-in.
See the [v3.5.0 compatibility documentation](https://github.com/rodri-oliveira-dev/Dapper-FluentMap/blob/v3.5.0/COMPATIBILITY.md) for details.
Packages
Version 3.5.0 includes:
Dapper.FluentMapDapper.FluentMap.DommelFluentMap.DependencyInjectionFluentMap.AnalyzersFluentMap.Generators
References
- [Repository](https://github.com/rodri-oliveira-dev/Dapper-FluentMap)
- [Migration guide](https://github.com/rodri-oliveira-dev/Dapper-FluentMap/blob/v3.5.0/MIGRATION.md)
- [Compatibility documentation](https://github.com/rodri-oliveira-dev/Dapper-FluentMap/blob/v3.5.0/COMPATIBILITY.md)
- [Full changelog — v3.4.0...v3.5.0](v3.4.0...v3.5.0)