我有一个要从.net core 2.0中的Match类映射的模型。 这两个类都具有Name属性。
我需要映射 Match.Value => ViewCompany.Name
但是它总是将 Match.Name放入ViewCompany.Name
这是我的 AutomapperProfile :
CreateMap<Match, ViewCompany>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Value));
.ForMember(目的地=> 目的地名称,opt => opt.MapFrom(src => src.Value ))
ViewCompany :
public class ViewCompany
{
public ViewCompany()
{
}
public ViewCompany(string name)
{
this.Name = name;
}
public int Id { get; set; }
public string Name { get; set; }
}
上面的映射不起作用。
但是,如果我将模型中的属性名称更改为“ Value”或“ tempName”之类的内容并更新自动映射器配置文件,则可以正常工作。
因此,在Automapper中不可能将具有相同名称的属性映射到不同的属性吗?
答案 0 :(得分:3)
这里发生的是Name
是通过the constructor映射的。避免这种情况的一种简单方法是告诉AM使用哪种构造函数:
CreateMap<Match, ViewCompany>().ConstructUsing(source=>new ViewCompany());