Automapper Custom mapping or ignore

I have tried something similar to AutoMapper Custom Mappings

however, what i really want is to not map to another property but ignore it.

i have tried:

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

but this just sets some type of resolution result to the property i'm trying to map to.

What i'd really like to do is what I attempted to ask in this issue:

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

ie

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

right now it's nulling out anything i have in those fields if i use the .condition and a .MapFrom after it.


This isn't really how i'd like this to work, but it worked for this particular situation. It would still be nice to have what i wanted before but it looks like if you don't do a mapFrom at all it simply ignores it.

                   .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/37356.html

上一篇: AutoMapper映射复杂对象

下一篇: 自动映射器自定义映射或忽略