AutoMapper将2个字符串字段组合为非顶级成员

时间:2019-05-07 14:58:10

标签: automapper

这应该是一个直截了当的问题,但是我缺少一些东西。 我在autoMapper中有一个配置。它应该映射同一Source对象的2个字段,并将它们组合为目标obj上的1个字符串。但它总是给我错误。我快速模拟了一下该错误,以显示错误,但不确定在正确的路径上予以解决。

  

System.ArgumentException:'表达式'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))

0 个答案:

没有答案