Ich habe diese Modelle:AutoMapper nicht in Reverse-Mapping arbeiten
public class DownloadRequest {
public int Id { get; set; }
public DateTime Date { get; set; } = DateTime.Now;
public bool IsProcessed { get; set; }
public string Output { get; set; }
public ICollection<DownloadCategory> DownloadCategories { get; } = new HashSet<DownloadCategory>();
}
public class DownloadCategory {
public int Id { get; set; }
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public virtual int RequestId { get; set; }
public virtual DownloadRequest Request { get; set; }
public ICollection<DownloadDocument> DownloadDocuments { get; } = new HashSet<DownloadDocument>();
}
public class DownloadDocument {
public int Id { get; set; }
public int Document { get; set; }
public string Path { get; set; }
public virtual int CategoryId { get; set; }
public virtual DownloadCategory Category { get; set; }
}
public class DownloadRequestVM {
public int Id { get; set; }
public DateTime Date { get; set; }
public bool IsProcessed { get; set; }
public string Output { get; set; }
public ICollection<DownloadCategoryVM> DownloadCategories { get; set; } = new HashSet<DownloadCategoryVM>();
public string Status {
get {
return IsProcessed ? "Processed" : "Processing";
}
}
public string RealDate {
get {
return string.Format("{0:d/M/yyyy HH:mm:ss}", Date);
}
}
}
public class DownloadCategoryVM {
public int Id { get; set; }
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public int RequestId { get; set; }
public ICollection<DownloadDocumentVM> DownloadDocuments { get; set; } = new HashSet<DownloadDocumentVM>();
}
public class DownloadDocumentVM {
public int Document { get; set; }
public string Path { get; set; }
}
Ich habe meine Mapping konfigurieren unter:
cfg.CreateMap<DownloadDocument, DownloadDocumentVM>().ReverseMap();
cfg.CreateMap<DownloadCategory, DownloadCategoryVM>()
.ForMember(d => d.DownloadDocuments, opt => opt.MapFrom(s => s.DownloadDocuments))
.ReverseMap()
.ForMember(d => d.DownloadDocuments, opt => opt.MapFrom(s => s.DownloadDocuments))
.ForMember(dest => dest.Request, opt => opt.Ignore());
cfg.CreateMap<DownloadRequest, DownloadRequestVM>()
.ForMember(d => d.DownloadCategories, opt => opt.MapFrom(s => s.DownloadCategories))
.ReverseMap()
.ForMember(d => d.DownloadCategories, opt => opt.MapFrom(s => s.DownloadCategories));
, wenn ich diese Zuordnung versuchen mapper.Map<IEnumerable<DownloadRequest>, IEnumerable<DownloadRequestVM>>(entities)
ist funktioniert gut. aber diese mapper.Map<DownloadRequestVM, DownloadRequest>(request)
Karten nur die DownloadRequest
Klasse und nicht DownloadDocuments
Sammlungen
Wie beheben ich meine Mapping-Konfiguration in beiden Richtungen zu arbeiten?