2013-07-23 4 views
0

У меня есть класс источник так:Как сопоставить несколько полей в одном поле?

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' и * not * заменить значение? Вы хотите суммировать суммы? –

+0

В принципе, после того, как я их сопоставляю, мне нужно будет создать две отдельные записи элементов, каждая из которых содержит одно из отображаемых значений VALUE. Да, чтобы не заменить вопрос, не на следующий вопрос. –

ответ

0

Если вы хотите разбить объект на два, вы либо не используете Automapper (который отображает один экземпляр в другой отдельный экземпляр), либо определяют две именованные карты и дважды выполняют сопоставление.

Я бы выбрал первый вариант.

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

Я с тобой согласен. Это похоже на то, что поддерживает automapper. –

Смежные вопросы