映射到基于源的备用目标类
本文关键字:备用 目标 于源 映射 | 更新日期: 2023-09-27 18:18:28
Automapper允许您定义映射并使用以下语法调用它:
Mapper.CreateMap<Order, OrderDto>();
OrderDto dto = Mapper.Map<OrderDto>(order);
是否可以使用排序谓词指定目标类型?
Mapper.CreateMap<Order, FooType>().Where(s => s["_type"].ToString() == "Foo");
Mapper.CreateMap<Order, BarType>().Where(s => s["_type"].ToString() == "Bar");
FooType和BarType都有对应于源类型内部字典中单独键值的内部属性。为了正确映射这些值,我需要确保它们存在,这在本例中是由_type键的值决定的。
Edit:如果这是可能的,使用Mapper.Map<>();的语法是什么?
您可以为每个属性设置一个映射条件,请看以下示例:
Mapper.CreateMap<Foo,Bar>()
.ForMember(dest => dest.baz, opt => opt.Condition(src => (src.baz >= 0)));
和
Mapper.CreateMap<Source, Target>()
.ForMember(dest => dest.Value,
opt => opt.MapFrom
(src => src.Value1.StartsWith("A") ? src.Value1 : src.Value2));