簡體   English   中英

使用自動映射器映射嵌套列表

[英]Mapping nested lists with automapper

這是我的課程設置。 如何僅將Invalid = false映射到DTOReportObservation和DTOReportObservationLocation項目?

reports = Mapper.Map<List<Report>, List<DTOReport>>(userReports);

    public class DTOReport
    {
        public List<DTOReportObservation> Observations;
    }

        public class DTOReportObservation
    {
        public Guid ReportObservationID { get; set; }
        public Guid ReportID { get; set; }
        public bool Invalid { get; set; }

        public List<DTOReportObservationLocation> ObservationLocations;
    }

     public class DTOReportObservationLocation
    {
        public Guid ReportObservationLocationID { get; set; }
        public Guid ReportObservationID { get; set; }
        public bool Invalid { get; set; }
    }

 CreateMap<Report, DTOReport>(MemberList.Source)
                .ForMember(d => d.Observations, opt => opt.MapFrom(src => src.ReportObservations))
                //??ReportObservations.Locations

使用自動映射器,您無需創建列表映射。 您只需創建從一種類型到另一種類型的映射,然后讓自動映射器遍歷集合。

您是否還可以澄清一下Invalid = false的含義,因為Invalid是一種GUID類型。

對於僅當invalid為false時的映射,您可以使用條件映射。 https://automapper.readthedocs.io/en/latest/Conditional-mapping.html

有關列表的更多信息,請參見文檔中有關集合的信息。 https://automapper.readthedocs.io/en/latest/Lists-and-arrays.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM