如何将多个字段映射到同一个字段?

问题描述:

我有一个源类,像这样:如何将多个字段映射到同一个字段?

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中的值?

+1

你想达到什么目的?为什么要将两个属性映射到'Value'属性并*不*替换值?你想总结金额? –

+0

基本上,在我映射这些后,我需要创建两个单独的Item记录,每个记录都带有上面映射的VALUE之一。是的,不是替换问题,不是下一个问题。 –

如果要将对象拆分为两部分,您要么不使用Automapper(将一个实例映射到另一个单个实例),要么定义两个命名的映射并执行两次映射。

我会去第一个选项。

var items = new Item[] 
{ 
    new Item { ID = order.ID, Value = order.RXEAmount }, 
    new Item { ID = order.ID, Value = order.RXOAmount } 
} 
+0

我倾向于同意你的看法。这似乎超出了automapper支持的范围。 –