如何将多个字段映射到同一个字段?
问题描述:
我有一个源类,像这样:如何将多个字段映射到同一个字段?
public class Order
{
public int ID { get; set; }
public string RXEAmount{ get; set; }
public string RXOAmount{ get; set; }
}
需要映射到这个类:
public class Item
{
public int ID { get; set; },
public string Value { get; set; }
}
映射貌似现在这种权利:
CreateMap<Order, Item>()
.ForMember(dest => dest.VALUE, m => m.MapFrom(src => src.RXEAmount))
.ForMember(dest => dest.VALUE, m => m.MapFrom(src => src.RXOAmount))
;
我如何这样做的方式允许我映射这两个字段而不替换VALUE中的值?
答
如果要将对象拆分为两部分,您要么不使用Automapper(将一个实例映射到另一个单个实例),要么定义两个命名的映射并执行两次映射。
我会去第一个选项。
var items = new Item[]
{
new Item { ID = order.ID, Value = order.RXEAmount },
new Item { ID = order.ID, Value = order.RXOAmount }
}
+0
我倾向于同意你的看法。这似乎超出了automapper支持的范围。 –
你想达到什么目的?为什么要将两个属性映射到'Value'属性并*不*替换值?你想总结金额? –
基本上,在我映射这些后,我需要创建两个单独的Item记录,每个记录都带有上面映射的VALUE之一。是的,不是替换问题,不是下一个问题。 –