Значение замены Automapper, когда у источника нет свойства, но оно сопоставлено - PullRequest
0 голосов
/ 16 января 2019

Я новичок в 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 в моем классе назначения, я отображаю его в массив из источника. Но из списка исходных рабочих элементов для некоторых элементов массив не содержит элемент для Код проекта . Таким образом, он вызывает ошибку типа «Отображение ошибки для поля Код проекта, которого нет в источнике»

Поэтому я запрашиваю решение, если у источника нет свойства, его следует заменить пустой строкой или просто нулем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...