这是我的课程设置。如何仅将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
答案 0 :(得分:0)
使用自动映射器,您无需创建列表映射。您只需创建从一种类型到另一种类型的地图,然后让自动映射器遍历集合即可。
您是否也可以澄清一下Invalid = false的含义,因为Invalid是Guid类型。
答案 1 :(得分:0)
仅当invalid为false时,才可以使用条件映射。 https://automapper.readthedocs.io/en/latest/Conditional-mapping.html。
有关列表的更多信息,请参见文档中有关集合的信息。 https://automapper.readthedocs.io/en/latest/Lists-and-arrays.html