Need for using Automapper
Eventually, in any
application, a developer will need to translate data from one object type to
another.
Common examples include DTOs
(Data Transfer Objects), View Models, or even just some request or response
object from a service or Web API call.
Usually we end up doing
manual mapping.
Drawback
- We need to do it in every page or repository where we are using it
- Difficult to maintain code
- We end up exposing actual properties from the database to the outside world
Advantages
- Lines of code has been reduced
- Easy for maintainance
- Mapping is loaded at application start up
- We are exposing the member what we have defined in view model
Typical data flow
Using Automapper
Steps to use Auto Mapper
- Download Automapper using package manager
- Create a config file
public class MapperConfig
{
public static void CreateMaps()
{
Mapper.CreateMap<SearchResult, OrgViewModel>()
.ForMember(dest => dest.FirstName, opt => opt.MapFrom(src =>
src.first_name))
.ForMember(dest => dest.LastName, opt => opt.MapFrom(src =>
src.last_name))
}
}
- In global.asax.cs call Mapper.config
protected void Application_Start()
{
MapperConfig.CreateMaps();
}
- Now we can use the mapping anywhere in our solution
Mapper.Map<IEnumerable<SearchResult>, IEnumerable< OrgViewModel>> ((searchList).ToList(), model);
No comments:
Post a Comment