[英]Automapper mapping collection of enums into view model collection
我有一个DTO如下:
public class AoACrudFieldValuesGdataHealthInput
{
public AoACrudFieldValuesGdataHealthInput()
{
PrevHealthAssessment = new HashSet<HealthPrevHealthAssessmentEnum>();
}
public HashSet<HealthPrevHealthAssessmentEnum> PrevHealthAssessment { get; set; }
}
和EF POCO:
[Table("Health", Schema = "gdata")]
public class GdataHealthTableModel : AuditedEntity
{
public GdataHealthTableModel()
{
//PrevHealthAssessment = new HashSet<HealthPrevHealthAssessmentEnum>();
}
[ForeignKey("Id")]
public ICollection<GdataHealthPrevAssesmentTableModel> PrevHealthAssessment { get; set; }
}
和:
[Table("HealthPrevAssesment", Schema = "gdata")]
public class GdataHealthPrevAssesmentTableModel : AuditedEntity
{
public HealthPrevHealthAssessmentEnum Assessment { get; set; }
}
我需要帮助扩展我的地图:
CreateMap<AoACrudFieldValuesGdataHealthInput, GdataHealthTableModel>();
这样AoACrudFieldValuesGdataHealthInput.PrevHealthAssessment最终会在GdataHealthTableModel.PrevHealthAssessment中结束。 目前我收到一个错误,因为我的CreateMap()不够详细 - 当然。
这可能吗? 或者我是否让映射器忽略该字段并手动完成?
注意:对于两个EF POCO,我省略了Id字段,为了简洁起见,这是一个自动增量。
为HealthPrevHealthAssessmentEnum
- > GdataHealthPrevAssesmentTableModel
定义其他地图:
CreateMap<AoACrudFieldValuesGdataHealthInput, GdataHealthTableModel>()
.ForMember(dest => dest.PrevHealthAssessment, o => o.MapFrom(src => src.PrevHealthAssessment));
CreateMap<HealthPrevHealthAssessmentEnum, GdataHealthPrevAssesmentTableModel>()
.ForMember(dest => dest.Id, o => o.Ignore()) // auto ID
.ForMember(dest => dest.Assessment , o => o.MapFrom(src => src));
不确定AutoMapper可以将ICollection转换为开箱即用的HashSet,我认为可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.