c#-将具有相同名称的字段映射到自动映射器中的不同文件

我有一个要从.net core 2.0中的Match类映射的模型.
这两个类都具有Name属性.

我需要映射Match.Value =>查看公司名称

但这总是将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))

查看公司:

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中不可能将具有相同名称的属性映射到不同的属性吗?

解决方法:

这里发生的是Name通过the constructor进行映射.避免这种情况的一种简单方法是告诉AM使用什么构造函数:

 CreateMap<Match, ViewCompany>().ConstructUsing(source=>new ViewCompany());
上一篇:C#-AutoMapper覆盖递归类型


下一篇:找不到自动地图参考C#