C# 如何使用复杂类型的ctor参数映射到目标?
C# 如何使用复杂类型的ctor参数映射到目标?,c#,automapper,C#,Automapper,项目(目标)既有带参数的公共ctor,也有受保护的无参数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() {}
项目
(目标)既有带参数的公共ctor,也有受保护的无参数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() {}
地图:
Mapper.CreateMap<CreateProjectModel, Project>().ForMember(
dest => dest.Name,
opt => opt.MapFrom(src => src.ProjectName)
);
是否可以使用
newproject(Project.ProjectName,user)
初始化,并使用Automapper
映射其余的源属性?由于另一个构造函数基于多个源类型,您可能必须显式调用它并通过Automapper映射其余的属性:
CreateProjectModel project = ...
var model = new Project(project.ProjectName, user);
Mapper.Map(project, model);
看这个:@Fung我已经看过这条线了。这与我的要求不同。
ConstructUsing(i=>
的参数i
不包含项目模型的属性。源和目标是不同类型的。这就是我要找的!
CreateProjectModel project = ...
var model = new Project(project.ProjectName, user);
Mapper.Map(project, model);