Skip to content

v3.5.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 11:44
· 108 commits to main since this release
35ff3fc

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 GeneratedParameters for 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 FluentMapConfigurationException errors 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 splitOn boundaries.
  • 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 DFM016 to 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.79 and < 3.0.0
  • Dommel: >= 3.5.3 and < 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.FluentMap
  • Dapper.FluentMap.Dommel
  • FluentMap.DependencyInjection
  • FluentMap.Analyzers
  • FluentMap.Generators

References