2014-11-05 4 views
0

У меня есть вопрос о Automapper. Это мой UseCase: У меня есть эти классы:Automapper - карта вложенных свойств

Bussiness:

public class Item 
{ 
    public NestedItem NestedItem{get;set;} 
} 

public class NestedItem 
{ 
    public string Name{get;set;} 
} 

ViewModel:

public class ItemViewModel 
{ 
    public string NestedItemName{get;set;} 
} 

Когда я хочу, чтобы отобразить пункт к ItemViewModel. Automapper map свойство NestedItem.Name до правильно. Но, наоборот, это не работает. Сопоставление не изменяет значение NestedItem.Name.

+0

Возможный дубликат карты [Automapper map в вложенный класс] (http://stackoverflow.com/questions/7924185/automapper-map-into-nested-class) –

ответ

0

У меня есть несколько противоречивый ответ на ссылку, изложенную выше, возможно, я просто делаю свои вещи неловко, но я считаю, что вы можете сделать это на одной карте. Например:

Mapper.CreateMap<ItemViewModel, Item>() 
    .ForMember(dest => dest.NestedItem, opt => 
     opt.MapFrom(src => new NestedItem(src.NestedItemName)); 

Теперь, конечно, это потребует от вас создания нового конструктора или добавить пустой конструктор и использовать фигурные скобки.

Я не могу комментировать производительность, так как AutoMapper - это серьезный сложный монстр. Однако это должно сделать трюк.

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