簡體   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