【问题标题】:Somewhat simple automapper nested property issue有点简单的自动映射器嵌套属性问题
【发布时间】:2014-01-31 22:28:02
【问题描述】:

我的应用程序中有一个多对多关系,我首先使用实体​​代码,所以它看起来像这样(显然还有更多,但这是基本结构):

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

【问题讨论】:

  • 类 IngredientDTO 有任何属性吗?如果您发布完整的类定义会有所帮助,因为这会影响您的映射方式。
  • 有Id、Label、数量等

标签: automapper


【解决方案1】:

我想通了。

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

您必须对映射到成分 DTO 上的属性的成分的每个属性执行此操作。

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2014-01-05
    • 1970-01-01
    • 2015-11-07
    相关资源
    最近更新 更多