这应该是一个直截了当的问题,但是我缺少一些东西。 我在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))