Project
(destination) has both public ctor with paramters and protected parameterless ctor.
public Project(String name, User initiator) {
this.Name = name;
this.Initiator = initiator;
this.InitializedOn = DateTime.Now;
}
// meant only to support some EF-related operations
protected Project() {}
The map:
Mapper.CreateMap<CreateProjectModel, Project>().ForMember(
dest => dest.Name,
opt => opt.MapFrom(src => src.ProjectName)
);
Consider the excerpt from create
action:
var user = dbContext.Users.Find(someId);
// initialize model using protected ctor - that's the behavior by default
var model = Mapper.Map<Project>(project);
// then initialize some additional properties
// or initialize model as it needs to be
// var model = new Project(project.ProjectName, user);
// and populate everything by hand
Is it possible to use new Project(project.ProjectName, user)
initialization and to map the rest source properties using Automapper
?