有点简单的automapper嵌套属性问题

时间:2014-01-31 22:28:03

标签: 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类中添加了几个属性,使其更加真实。

1 个答案:

答案 0 :(得分:0)

我明白了。

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

您必须为Ingredient的每个属性执行此操作,该属性映射到IngredientDTO上的属性。