根据源映射到备用目标类

时间:2015-10-20 16:40:05

标签: c# automapper

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键的值决定。

编辑:如果可能,使用Mapper.Map&lt;&gt;()的语法是什么??

1 个答案:

答案 0 :(得分:0)

您可以为每个属性设置地图条件,查看以下示例:

   Mapper.CreateMap<Source, Target>()
        .ForMember(dest => dest.Value, 
                   opt => opt.MapFrom
                   (src => src.Value1.StartsWith("A") ? src.Value1 : src.Value2));

popver-html