繁体   English   中英

使用Automapper ForMember方法无法映射具有不同名称的字段

[英]Unable to map fields with different names using Automapper ForMember method

我希望将一个名为PortalUser的实体映射到另一个名为UserFacade的实体,它们两个都具有相同的字段,但是一个字段相同,因为两个类的字段名称都不相同。

经过一番谷歌搜索后,我发现了一种将名称彼此不同的字段相互映射的方法,如此处所述, 如何在属性名称不同时指定映射规则

解决方案是使用ForMember函数并明确定义要映射的字段,如上面问题的回答中所述。

我的问题是,ForMember无法按Stackoverflow的几乎所有答案进行解释

AutoMapper.Mapper.CreateMap(user.GetType(), typeof(UserFacade))
    .ForMember(dest => dest.PortalRole, opt => opt.MapFrom(src => src.Role);

var userFacade = AutoMapper.Mapper.Map<UserFacade>(user);

ForMember的第二行表示无法将lambda转换为字符串类型。 ForMember函数在stackoverflow的几乎每个答案中都以相同的方式使用,但是在这里似乎不起作用,请帮忙。

尝试如下:

AutoMapper.Mapper.CreateMap(user.GetType(), typeof(UserFacade))
    .ForMember(dest => dest.PortalRole, opt => opt.MapFrom(src => src.Role));

也可以确认,这已添加到名称空间:

    using System.Linq;

当我看着这个。 我看到3个可能的原因:

1)错字问题:

AutoMapper.Mapper.CreateMap(user.GetType(), typeof(UserFacade))
    .ForMember(dest => dest.PortalRole, opt => opt.MapFrom(src => src.Role));

2)使用

using AutoMapper;
using System.Linq;

3)没有角色映射到PortalRole。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM