Automapper嵌套映射
Autmapper nested mapping
我有以下主要内容class:
public class ResearchOutcome
{
public ResearchOutcomeCategory ResearchOutcomeCategory { get; set; }
public string? UniqueIdentifier { get; set; }
}
类别class是:
public class ResearchOutcomeCategory
{
public int Id { get; set; }
public string Name { get; set; }
public string? Description { get; set; }
}
以上 class 的视图模型是:
public class ResearchOutcomeDetailVm : IMapFrom<ResearchOutcome>
{
public int Id { get; set; }
public virtual ResearchOutcomeCategoryDetailVm ResearchOutcomeCategory { get; set; }
}
public class ResearchOutcomeCategoryDetailVm : IMapFrom<ResearchOutcomeCategory>
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
现在,我使用了以下映射配置文件:
// First this one
profile.CreateMap<ResearchOutcomeCategory, ResearchOutcomeCategoryDetailVm>();
profile.CreateMap<ResearchOutcome, ResearchOutcomeDetailVm>();
//Then I tried this one
profile.CreateMap<ResearchOutcome, ResearchOutcomeDetailVm>()
.ForMember(o => o.ResearchOutcomeCategory,
cat => cat.MapFrom( o => o.ResearchOutcomeCategory));
但 ResearchOutcomeCategory 始终为空。任何帮助,将不胜感激。
深入挖掘后,我确定我不是"Including"查询中的相关项,因此,视图模型始终为空。对我来说很愚蠢 :D
关于映射,如果属性(即使是复杂的)具有相同的名称,那么映射器将自动映射它们。所以这条线很简单
profile.CreateMap<ResearchOutcomeCategory, ResearchOutcomeCategoryDetailVm>();
希望对大家有所帮助
我有以下主要内容class:
public class ResearchOutcome
{
public ResearchOutcomeCategory ResearchOutcomeCategory { get; set; }
public string? UniqueIdentifier { get; set; }
}
类别class是:
public class ResearchOutcomeCategory
{
public int Id { get; set; }
public string Name { get; set; }
public string? Description { get; set; }
}
以上 class 的视图模型是:
public class ResearchOutcomeDetailVm : IMapFrom<ResearchOutcome>
{
public int Id { get; set; }
public virtual ResearchOutcomeCategoryDetailVm ResearchOutcomeCategory { get; set; }
}
public class ResearchOutcomeCategoryDetailVm : IMapFrom<ResearchOutcomeCategory>
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
现在,我使用了以下映射配置文件:
// First this one
profile.CreateMap<ResearchOutcomeCategory, ResearchOutcomeCategoryDetailVm>();
profile.CreateMap<ResearchOutcome, ResearchOutcomeDetailVm>();
//Then I tried this one
profile.CreateMap<ResearchOutcome, ResearchOutcomeDetailVm>()
.ForMember(o => o.ResearchOutcomeCategory,
cat => cat.MapFrom( o => o.ResearchOutcomeCategory));
但 ResearchOutcomeCategory 始终为空。任何帮助,将不胜感激。
深入挖掘后,我确定我不是"Including"查询中的相关项,因此,视图模型始终为空。对我来说很愚蠢 :D
关于映射,如果属性(即使是复杂的)具有相同的名称,那么映射器将自动映射它们。所以这条线很简单
profile.CreateMap<ResearchOutcomeCategory, ResearchOutcomeCategoryDetailVm>();
希望对大家有所帮助