将具有相同名称的字段映射到自动映射器中的不同字段

我有一个模型,我试图从 .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(dest => dest.Name , 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 中是不是不能将同名的属性映射到不同的属性呢?


万千封印
浏览 65回答 1
1回答

炎炎设计

这里发生的是通过构造函数Name映射的。避免这种情况的一个简单方法是告诉 AM 使用什么构造函数:&nbsp;CreateMap<Match,&nbsp;ViewCompany>().ConstructUsing(source=>new&nbsp;ViewCompany());
打开App,查看更多内容
随时随地看视频慕课网APP