自动映射器自定义映射或忽略

我尝试了一些类似于AutoMapper自定义映射的东西

然而,我真正想要的是不映射到另一个属性,但忽略它。

我努力了:

.ForMember(m=>m.BillingAddress,m=>m.ResolveUsing((result, card) => {
        if (!string.IsNullOrEmpty(card.BillingDetails?.Address1)) {
           return card.BillingDetails.Address1;
        }
        else {
           return result.Ignore();
        }
}))

但是这只是为我想要映射的属性设置某种类型的解析结果。

我真正想做的是我在这个问题上试图提出的问题:

https://github.com/AutoMapper/AutoMapper/issues/1690

.ForMember(m=>m.BillingAddress, m=>{
    m.Condition(s=>!String.IsNullOrEmpty(s.BillingDetails?.Address1), m.MapFrom(...), m.Ignore())
}

现在,如果我在这之后使用.condition和一个.MapFrom,那么它将把这些字段中的任何内容归零。


这实际上并不是我想要的,但它适用于这种特殊情况。 如果能够拥有我之前想要的东西,那还是很好的,但是看起来好像如果你不做地图,它完全忽略它。

                   .ForMember(m => m.BillingAddress, m => {
                        m.Condition(s => !String.IsNullOrEmpty(s.BillingDetails?.Address1));
                        m.MapFrom(i => i.BillingDetails.Address1);
                    })
                    .ForMember(m => m.BillingAddress2, m => {
                        m.Condition(s => !String.IsNullOrEmpty(s.BillingDetails?.Address2));
                        m.MapFrom(i => i.BillingDetails.Address2);
                    })
                    .ForMember(m => m.City, m => {
                        m.Condition(s => !String.IsNullOrEmpty(s.BillingDetails?.City));
                        m.MapFrom(i => i.BillingDetails.City);
                    })
                    .ForMember(m => m.State, m => {
                        m.Condition(s => !String.IsNullOrEmpty(s.BillingDetails?.State));
                        m.MapFrom(i => i.BillingDetails.State);
                    })
                    .ForMember(m => m.Zip, m => {
                        m.Condition(s => !String.IsNullOrEmpty(s.BillingDetails?.Zip));
                        m.MapFrom(i => i.BillingDetails.Zip);
                    })
链接地址: http://www.djcxy.com/p/37355.html

上一篇: Automapper Custom mapping or ignore

下一篇: Denormalise object hierarchy with automapper