我是Automapper的初学者。我正在尝试将TFS工作项类映射到我的自定义类中。这是我完成的映射
MapperConfigurationExpression conf = new MapperConfigurationExpression();
conf.CreateMap<WorkItem, TfsWorkItems>()
.ForMember(dst => dst.ID, src => src.MapFrom<int>(e => e.Id))
.ForMember(dst => dst.WorkItemType, src => src.MapFrom<string>(e => e.Type.Name))
.ForMember(dst => dst.PCode, src => src.MapFrom<string>(e => e.Fields["Project Code"].Value.ToString()))
.ForAllMembers(opts => opts.Condition((src, dest, srcmember) => srcmember != null));
Mapper.Initialize(conf);
List<TfsWorkItems> twi = new List<TfsWorkItems>();
foreach (WorkItem _wi in wiclist)
{
var tfsWorkItem = Mapper.Map<WorkItem, TfsWorkItems>(_wi);
twi.Add(tfsWorkItem);
}
正如您在我的目标类中看到的属性PCode那样,我将其从源映射到数组。但是从源工作项列表中,对于某些项目,数组不包含项目代码的项目。因此,它会触发诸如“源代码中不存在的项目代码字段的错误映射”之类的错误
因此,如果源中没有属性,则Im要求解决方案,因此应替换为空字符串或只是null。