agileobjects/AgileMapper

A zero-configuration, highly-configurable, unopinionated object mapper with viewable execution plans. Flattens, unflattens, deep clones, merges, updates and projects queries. .NET 3.5+ and .NET Standard 1.0+.

463

stars

1,096

commits

C#

primary language

Mar 16, 2026

updated

dto
mapper
mapping
mappings
netstandard
viewmodel

README

AgileMapper

NuGet version Build status

AgileMapper is a zero-configuration, highly-configurable, unopinionated object mapper with viewable execution plans. It flattens, unflattens, deep clones, merges, updates and projects queries via extension methods, or a static or instance API. It targets .NET 3.5+ and .NET Standard 1.0+.

You can use it to create new objects:

var customerDto = Mapper.Map(customer).ToANew<CustomerDto>();

...project queries:

var customerDtos = await context
    .Customers
    .Project().To<CustomerDto>()
    .ToArrayAsync();

...perform id-aware updates:

Mapper.Map(customerViewModel).Over(customer);

...and merges:

Mapper.Map(customerOne).OnTo(customerTwo);

It's available via NuGet and licensed with the MIT licence. Check out the documentation for more!

Contributors

SteveWilkes

1,094 commits

chaowlert

1 commits

lbargaoanu

1 commits

agileobjects/AgileMapper

A zero-configuration, highly-configurable, unopinionated object mapper with viewable execution plans. Flattens, unflattens, deep clones, merges, updates and projects queries. .NET 3.5+ and .NET Standard 1.0+.

463

stars

1,096

commits

C#

primary language

Mar 16, 2026

updated

dto
mapper
mapping
mappings
netstandard
viewmodel

README

AgileMapper

NuGet version Build status

AgileMapper is a zero-configuration, highly-configurable, unopinionated object mapper with viewable execution plans. It flattens, unflattens, deep clones, merges, updates and projects queries via extension methods, or a static or instance API. It targets .NET 3.5+ and .NET Standard 1.0+.

You can use it to create new objects:

var customerDto = Mapper.Map(customer).ToANew<CustomerDto>();

...project queries:

var customerDtos = await context
    .Customers
    .Project().To<CustomerDto>()
    .ToArrayAsync();

...perform id-aware updates:

Mapper.Map(customerViewModel).Over(customer);

...and merges:

Mapper.Map(customerOne).OnTo(customerTwo);

It's available via NuGet and licensed with the MIT licence. Check out the documentation for more!

Contributors

SteveWilkes

1,094 commits

chaowlert

1 commits

lbargaoanu

1 commits

Languages

C#

100.0%