我的应用程序中有多对多关系,我首先使用实体代码,所以它看起来像这样(显然有更多,但这是基本结构):
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 :(得分:0)
我明白了。
Mapper.CreateMap<RecipeIngredient, IngredientDTO>()
.ForMember(dto => dto.Label, rc => rc.MapFrom(x => x.Ing.Label))
您必须为Ingredient的每个属性执行此操作,该属性映射到IngredientDTO上的属性。