尝试根据viewModel上的特定字段跳过属性映射。有没有办法在ForAllMembers中访问源对象 - >条件方法
Mapper.CreateMap<AViewModel, AEntity>()
.IgnoreMembers(ignoreMembers)
.ForAllMembers(o => {
o.Condition(ctx => {
//Need to access AViewModel instance here
return "Id" == ctx.MemberName;
});
});
答案 0 :(得分:1)
我不知道官方方式,但您可以使用Parent
上的ResolutionContext
属性
Mapper.CreateMap<AViewModel, AEntity>()
.IgnoreMembers(ignoreMembers)
.ForAllMembers(o => {
o.Condition(ctx => {
AViewModel instance = (AViewModel)ctx.Parent.SourceValue;
return "Id" == ctx.MemberName;
});
});
如果您在映射的多个级别中,您可以“遍历”Parent
关系,直到找到您要查找的类型。
答案 1 :(得分:0)