AutoMapper объединяет 2 строковых поля в элемент не верхнего уровня - PullRequest
0 голосов
/ 07 мая 2019

Это должен быть прямой вопрос, но я что-то упустил. У меня есть конфиг в autoMapper. Он должен отобразить 2 поля одного и того же исходного объекта и объединить их в 1 строку в целевом объекте. но это продолжает давать мне ошибки. Я быстро смоделировал это, чтобы показать ошибку, но я не уверен в правильном пути ее устранения.

System.ArgumentException: 'Expression' dest => dest.FullNameObj.FullName 'должно разрешаться в элемент верхнего уровня, а не в свойствах любого дочернего объекта. Вместо этого вы можете использовать ForPath, пользовательский распознаватель для дочернего типа или параметр AfterMap. Имя параметра: lambdaExpression '

      public class SourecObj
    {
        public string Firstname { get; set; }
        public string Lastname { get; set; }
    }

    public class TargetObj
    {
        public string Names { get; set; }
        public FullName FullNameObj { get; set; }
    }

    public class FullName
    {
        public  string FullName { get; set; }
    }

Отображение для конфигурации AutoMapper, как показано ниже.

cfg.CreateMap<SourceObj, TargetObj>()

  .ForMember(dest => dest.FullNameObj.FullName, opt => opt.ResolveUsing(src =>
                {
                    return src.Firstname + " " + src.LastName;
                }))

Слишком сложно, я думаю, получается

.ForPath(dest => dest.FullNameObj.FullName, opt => opt.MapFrom(src => src.firstname+ " "+ src.lastname))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...