Dapper.FluentMap.Dommel
3.6.0
dotnet add package Dapper.FluentMap.Dommel --version 3.6.0
NuGet\Install-Package Dapper.FluentMap.Dommel -Version 3.6.0
<PackageReference Include="Dapper.FluentMap.Dommel" Version="3.6.0" />
<PackageVersion Include="Dapper.FluentMap.Dommel" Version="3.6.0" />
<PackageReference Include="Dapper.FluentMap.Dommel" />
paket add Dapper.FluentMap.Dommel --version 3.6.0
#r "nuget: Dapper.FluentMap.Dommel, 3.6.0"
#:package Dapper.FluentMap.Dommel@3.6.0
#addin nuget:?package=Dapper.FluentMap.Dommel&version=3.6.0
#tool nuget:?package=Dapper.FluentMap.Dommel&version=3.6.0
FluentMap
<p align="center"> <img src="website/public/social/fluentmap-social.png" alt="Dapper FluentMap — Map your data. Keep your models clean." width="1200"> </p>
<p align="center"><strong>Map your data. Keep your models clean.</strong></p>
<p align="center"> English · <a href="README.pt-BR.md">Português (Brasil)</a> </p>
<p align="center"> <a href="https://github.com/rodri-oliveira-dev/Dapper-FluentMap/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/rodri-oliveira-dev/Dapper-FluentMap/actions/workflows/ci.yml/badge.svg?branch=main"></a> <a href="https://www.nuget.org/packages/Dapper.FluentMap"><img alt="NuGet" src="https://img.shields.io/nuget/v/Dapper.FluentMap?logo=nuget"></a> <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/github/license/rodri-oliveira-dev/Dapper-FluentMap"></a> <a href="https://github.com/rodri-oliveira-dev/Dapper-FluentMap/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/rodri-oliveira-dev/Dapper-FluentMap?style=flat&logo=github"></a> </p> <p align="center"> <a href="https://github.com/rodri-oliveira-dev/Dapper-FluentMap/actions/workflows/codeql.yml"><img alt="CodeQL" src="https://github.com/rodri-oliveira-dev/Dapper-FluentMap/actions/workflows/codeql.yml/badge.svg?branch=main"></a> <a href="https://sonarcloud.io/summary/new_code?id=rodri-oliveira-dev_Dapper-FluentMap"><img alt="Quality Gate" src="https://sonarcloud.io/api/project_badges/measure?project=rodri-oliveira-dev_Dapper-FluentMap&metric=alert_status"></a> <a href="https://sonarcloud.io/summary/new_code?id=rodri-oliveira-dev_Dapper-FluentMap"><img alt="Coverage" src="https://sonarcloud.io/api/project_badges/measure?project=rodri-oliveira-dev_Dapper-FluentMap&metric=coverage"></a> </p>
<p align="center"> <a href="website/src/content/docs/getting-started/index.md">Getting Started</a> · <a href="website/src/content/docs/index.mdx">Documentation</a> · <a href="https://www.nuget.org/packages/Dapper.FluentMap">NuGet</a> · <a href="website/src/content/docs/examples/index.md">Examples</a> · <a href="https://github.com/rodri-oliveira-dev/Dapper-FluentMap/releases">GitHub Releases</a> · <a href="#contributing">Contributing</a> </p>
FluentMap provides fluent, strongly typed mappings for applications that use Dapper. It connects .NET properties to database columns without adding persistence attributes to domain entities.
FluentMap complements Dapper; it does not replace it and is not a full ORM. SQL, connections, transactions, migrations, and entity tracking remain outside its scope.
Why FluentMap?
Imagine a .NET application with a Customer entity whose properties are Id and Name, while its database returns customer_id and customer_name. FluentMap keeps those physical column names in a dedicated, strongly typed map instead of coupling the entity to persistence details.
That gives you:
- cleaner domain models;
- strongly typed configuration;
- explicit, reusable mappings;
- direct integration with Dapper;
- support for reusable conventions;
- better organization of persistence code.
Quick Start
Install the core package and, for this self-contained SQLite example, the database provider:
dotnet add package Dapper.FluentMap
dotnet add package Microsoft.Data.Sqlite
Define the entity and its map, register it once during startup, then query normally with Dapper:
using Dapper;
using Dapper.FluentMap;
using Dapper.FluentMap.Mapping;
using Microsoft.Data.Sqlite;
FluentMapper.Initialize(config => config.AddMap<CustomerMap>());
FluentMapper.Validate();
using var connection = new SqliteConnection("Data Source=:memory:");
var customer = connection.QuerySingle<Customer>(
"SELECT 7 AS customer_id, 'Ada' AS customer_name;");
public sealed class Customer
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
}
public sealed class CustomerMap : EntityMap<Customer>
{
public CustomerMap()
{
Map(customer => customer.Id).ToColumn("customer_id");
Map(customer => customer.Name).ToColumn("customer_name");
}
}
Initialize the global configuration before concurrent queries and treat it as read-only afterward. See the Quick Start source if the planned portal is not yet deployed.
Key Features
| Feature | Scope | Learn more |
|---|---|---|
| Explicit property mapping | Core | EntityMap<T> and property mapping |
| Naming conventions | Core | Conventions |
| Immutable objects | Core | Immutable objects |
| Mapping profiles | Core | Mapping profiles |
| Runtime isolation | Core | FluentMapRuntime |
| Dependency Injection | Optional package | DI integration |
| Dommel integration | Optional package | Dommel integration |
| Source generators | Optional package | Source generators |
| Roslyn analyzers | Optional package | Roslyn analyzers |
The repository-local usage guide remains available as a fallback for detailed API examples.
Packages
| Package | Purpose |
|---|---|
Dapper.FluentMap |
Core mapping, conventions, profiles, materialization, and runtime APIs. |
Dapper.FluentMap.Dommel |
Optional Dommel metadata and persistence integration. |
FluentMap.DependencyInjection |
Registration of immutable configuration and isolated runtimes with Microsoft DI. |
FluentMap.Analyzers |
Roslyn diagnostics for statically detectable mapping problems. |
FluentMap.Generators |
Generated map registration and supported materializers. |
Package IDs are distribution identities. Assemblies, namespaces, and public APIs remain under Dapper.FluentMap.* where documented.
Documentation
The bilingual documentation portal is planned for https://rodri-oliveira-dev.github.io/Dapper-FluentMap/. Until its deployment is confirmed, use the linked repository-local sources as fallbacks.
| Topic | Portal source | Repository guide |
|---|---|---|
| Getting Started | Start here | Quick Start |
| Basic Mapping | Property mapping | Usage guide |
| Advanced Mapping | Advanced mapping | Usage guide |
| Integrations | Integrations | Package overview |
| Examples | Examples | SQLite example |
| Migration Guide | Migration | MIGRATION.md |
| Compatibility | Compatibility matrix | COMPATIBILITY.md |
| API Reference | API overview | Configuration reference |
Project Status
FluentMap is actively maintained. The 3.x line preserves the main historical contracts—including EntityMap<T>, FluentMapper.Initialize(...), and the Dapper type-map bridge—while newer capabilities remain opt-in. Review the compatibility documentation before upgrading.
For published versions and release history, see GitHub Releases and the changelog.
Contributing
Contributions are welcome. You can report a bug or suggest an improvement, help improve the documentation, or submit a focused pull request.
If FluentMap helps your project, consider giving the repository a GitHub star.
License
FluentMap is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Dapper (>= 2.1.79 && < 3.0.0)
- Dapper.FluentMap (>= 3.6.0)
- Dommel (>= 3.5.3 && < 4.0.0)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Dapper.FluentMap.Dommel:
| Package | Downloads |
|---|---|
|
ZKWeb.ORM.Dapper
Support use Dapper in ZKWeb. For more information please visit project site. |
|
|
RepositoryHelpers
Extensions for HttpClient and Custom Repository based on dapper |
|
|
RCommon.Persistence.Dapper
A cohesive set of .NET 7 infrastructure libraries that utilizes abstractions for persistence, unit of work/transactions, distributed events, distributed transactions, and more. |
|
|
CoreForDapper
Este repositório é uma extensão do Dapper, com o objetivo de utilização totalmente voltada à objetos. |
|
|
Expenseon.Repository.Mysql
Repository Pattern Implementation for MySQL |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on Dapper.FluentMap.Dommel:
| Repository | Stars |
|---|---|
|
zkweb-framework/ZKWeb
A flexible web framework supports .Net Framework and .Net Core
|
|
|
andreluizsecco/AspnetCore.EFCore_Dapper
Projeto ASP.NET Core + Entity Framework Core + Dapper, demonstrando o uso de ambos separadamente e em um cenário híbrido.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.6.0 | 156 | 10/13/2026 |
| 3.5.0 | 354 | 10/1/2026 |
| 3.4.0 | 143 | 9/28/2026 |
| 3.0.3 | 754 | 9/10/2026 |
| 3.0.0 | 184 | 9/8/2026 |
| 2.0.0 | 1,663,217 | 8/23/2020 |
| 1.7.1 | 241,615 | 5/5/2020 |
| 1.7.0 | 348,877 | 3/28/2019 |
| 1.6.0 | 199,688 | 11/16/2018 |
| 1.5.0 | 196,819 | 8/18/2017 |
| 1.4.5 | 21,503 | 3/22/2017 |
| 1.4.3 | 21,512 | 1/16/2017 |
| 1.4.2 | 19,729 | 8/16/2016 |
| 1.4.1 | 11,948 | 7/7/2016 |
| 1.4.0 | 19,798 | 6/11/2016 |
| 1.2.1 | 13,750 | 3/1/2016 |