为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
万千封印 2022-11-21 22:12:50

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


查看完整描述

1 回答

?
炎炎设计

TA贡献1529条经验 获得超3个赞

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

 CreateMap<Match, ViewCompany>().ConstructUsing(source=>new ViewCompany());


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 6 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信