2014-01-31 2 views
1

У меня есть много-много отношений в моем приложении, и я сначала использую код Entity, поэтому он выглядит так (это, очевидно, больше, но это основная структура):В некоторой степени простая проблема с вложенным свойством automapper

Class Ingredient{ 
    int Id {get; set;} 
    string Label {get; set;} 
} 

Class RecipeIngredient{ 
    Ingredient Ing {get; set;} 
    Recipe Rec {get; set;} 
    int Quantity {get; set;} 
} 

class Recipe{ 
    int Id {get; set;} 
    List<RecipeIngredient> RecIngs {get; set;} 
} 

Как обрабатывать отображение на карту это к следующему DTO:

class RecipeDTO{ 
    List<IngredientDTO> Ingredients; 
} 

class IngredientDTO{ 
    int Id {get; set;} 
    string Label {get; set;} 
    int Quantity {get; set;} 
} 

Учитывая, что у меня уже есть стандартные отображения:

Mapper.CreateMap<Recipe, RecipeDTO>(); 
Mapper.CreateMap<Ingredient, IngredientDTO>(); 

Я предполагаю, что мне нужно сделать некоторый файл Mapper.CreateMap(). ForMember(), но я понятия не имею.

Редактировать: Я добавил пару свойств классу RecipeIngredient, чтобы сделать его более реальным.

+0

Имеет ли класс IngredientDTO какие-либо свойства? Это поможет, если вы опубликуете полные определения классов, так как это может повлиять на отображение карты. –

+0

Имеет идентификатор, ярлык, количество и т. Д. – PhilBrown

ответ

0

Я понял.

Mapper.CreateMap<RecipeIngredient, IngredientDTO>() 
       .ForMember(dto => dto.Label, rc => rc.MapFrom(x => x.Ing.Label)) 

Вы должны сделать это для каждого свойства Ингредиента, который отображается в собственности на IngredientDTO.

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