有没有办法告诉AutoMapper跳过所有空属性(因为我的对象有50个属性),然后允许某些属性为空后?
换句话说,我宁愿不“白名单”49应该跳过的属性。我宁愿将它们默认为全部被跳过,然后将其“白名单”以允许空值。
第一部分当然可能看起来像我想象的那样。
Mapper.CreateMap<MyClassA, MyClassB>()
.ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));
答案 0 :(得分:4)
您可以使用AfterMap手动映射某些属性并跳过所有其他null属性:
Mapper.CreateMap<MyClassA, MyClassB>()
.AfterMap((a,b) => b.Foo = a.Foo) // will be mapped if Foo is null
.ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));