源不具有属性但映射了属性时的自动映射器替换值

时间:2019-01-16 03:39:23

标签: c# automapper tfs-sdk

我是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。

0 个答案:

没有答案