【发布时间】:2020-01-17 11:57:14
【问题描述】:
我是 AutoMapper 的新手,但遇到了问题
我有一个这样的模型。
public class StepUp {
public string Example {get;set;}
public string Example2 {get;set;}
public decimal? auxValue { get;set; }
}
但我有两个 ViewModel 作为目的地
public class NuevoStepUpViewModel()
{
public bool TieneAuxiliar { get; set; }
public string Example { get;set; }
public CargaDatosElectricos CargaDatosElectricos { get; set; }
}
public class CargaDatosElectricos {
public CargaDatosElectricos(bool tieneAuxiliar)
{
TieneAuxiliar = tieneAuxiliar;
}
public readonly bool TieneAuxiliar;
public string Example2 { get; set; }
}
我认为有些是这样的:
CreateMap<StepUp,NuevoStepUpViewModel()
.ForMember(x => x.TieneAuxiliar, x => x.MapFrom(c => c.auxValue.HasValue))
.ForMember(x => x.Example, x => x.MapFrom(c => c.Example))
.ForMember(x => x.CargaDatosElectricos.Example2, x => x.MapFrom(c => c.Example2))
.BeforeMap((x,y) => {
x.CargaDatosElectricos = new CargaDatosElectricos(c.auxValue.HasValue);
});
但我明白了
表达式 'x => x.CargaDatosElectricos.Example2' 必须解析为 顶级成员,而不是任何子对象的属性
我应该如何创建我的映射器配置来执行这种类型的映射?
【问题讨论】:
-
您之前尝试过使用自动映射器吗?我的意思是,在您的 createMap 之前,请执行另一个 CreateMap 示例2
标签: c# asp.net-mvc asp.net-core automapper viewmodel