【发布时间】:2018-05-14 14:43:32
【问题描述】:
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<EmployeeSkill, EmployeeSkillDTO>();
});
IMapper mapper = config.CreateMapper();
List<EmployeeSkill> ski = context.EmployeeSkill.Where(r => !r.IsDeleted && r.EmployeeID == employeeID).ToList();
List<EmployeeSkillDTO> mapObj = mapper.Map<List<EmployeeSkill>, List<EmployeeSkillDTO>>(ski);
return mapObj;
返回
[
{
"SkillID": 1,
"EmployeeID": 83,
"YearOfExperience": 8,
"Major": "major",
"SkillName": null,
"IsDeleted": false,
"CreatedBY": 29,
"CreationTime": "2018-05-14T15:53:06.203",
"UpdatedBy": null,
"UpdateTime": null
},
我需要从 Skills 表中返回 SkillName ...我尝试过:
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<EmployeeSkill, EmployeeSkillDTO>().ForMember(x => x.SkillName, opt => opt.ResolveUsing(src => src.Skill.SkillName))
});
但它不起作用..任何建议
【问题讨论】:
-
你试过用 .MapFrom 代替 .ResolveUsing 吗?
-
您确定问题出在映射上吗?您是否检查过
ski是否包含您的技能项目? -
@dlxeon 是的,我试过了,但没用
-
@oerkelens 是的,我在没有映射的情况下尝试过,并且通过 SkillName = r.Skill.SkillName 获得技能名称
标签: c# asp.net-web-api automapper dto