Mapster - The Mapper of Your Domain
Writing mapping method is machine job. Do not waste your time, let Mapster do it.
Get it
PM> Install-Package Mapster
Basic usage
Mapping to a new object
Mapster creates the destination object and maps values to it.
var destObject = sourceObject.Adapt<Destination>();
Mapping to an existing object
You make the object, Mapster maps to the object.
sourceObject.Adapt(destObject);
Queryable Extensions
Mapster also provides extensions to map queryables.
using (MyDbContext context = new MyDbContext())
{
// Build a Select Expression from DTO
var destinations = context.Sources.ProjectToType<Destination>().ToList();
// Versus creating by hand:
var destinations = context.Sources.Select(c => new Destination {
Id = p.Id,
Name = p.Name,
Surname = p.Surname,
....
})
.ToList();
}
What's new in Mapster 4.0
- Two ways mapping
- Unflattening
- Map & ignore by property path
- MaxDepth
- Map to constructor
Why Mapster?
Performance
Don't let other libraries slow you down, Mapster performance is at least 2.5 times faster!
And 3.x times faster with FastExpressionCompiler and Mapster CodeGen!
Step into debugging
Step-into debugging lets you debug your mapping and inspect values as same as its your code.
Code Generation NEW!!
Mapster CodeGen lets you do mapping with
- Validate mapping at compile time
- Getting raw performance
- Seeing your mapping code & debugging
- Finding usage of your models' properties
Change logs
https://github.com/MapsterMapper/Mapster/releases