【发布时间】:2019-10-21 23:03:15
【问题描述】:
我有 automapper 正确映射,但我有一个外部集合,我想用它来丰富传出类。
我显然可以将列表购买到配置文件类中,但此列表来自一个 api,我将在运行时运行我的自动映射器之前调用它。下面是一个粗略的示例,希望根据国家名称查看播放器类上的国家代码。
在我的类中实现 Profile 接口的映射
CreateMap<StagePlayer, Player>()
.ForMember(x => x.Name, x => x.MapFrom(y => y.PlayerName))
.ForMember(x => x.SomethingA, x => x.MapFrom(y => y.Something))
.ForMember(x => x.CountryName, x => x.MapFrom(y => y.CountryName )) //obviously don't need this but just for the sake of the example
//.ForMember(x => x.CountryCode = countries.FirstOrDefault(y => y.CountryName == x.CountryName)?.CountryCode)
;
实际使用情况。
var playersOut = playersIn.Select(s => _mapper.Map<Player>(s)).ToList();
playersOut.ForEach(x => x.CountryCode = countries.FirstOrDefault(y => y.CountryName == x.CountryName)?.CountryCode);
我希望在我的个人资料中设置国家/地区代码的 ForEach 设置,但不得不将国家/地区列表传递到映射调用中。
我找不到这方面的任何例子,我确信我遗漏了一些非常明显的东西,但在 automapper 文档中看不到。
【问题讨论】:
标签: c# .net automapper