[英]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.