AutoMapper跳过所有Null属性,然后允许一些空值

时间:2013-11-04 22:40:56

标签: c# automapper

有没有办法告诉AutoMapper跳过所有空属性(因为我的对象有50个属性),然后允许某些属性为空后?

换句话说,我宁愿不“白名单”49应该跳过的属性。我宁愿将它们默认为全部被跳过,然后将其“白名单”以允许空值。

第一部分当然可能看起来像我想象的那样。

Mapper.CreateMap<MyClassA, MyClassB>()                
.ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));

1 个答案:

答案 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));