AutoMapper : Kopieren IList<> zu IList<>
Ich habe eine IList<AdminVAT>
und ich möchte eine Kopie dieser Auflistung IList<AdminVATDto>
Sammlung
Habe ich versucht, dieses :
IList<AdminVAT> listAdminVAT = new AdministrationService(session).ListDecimal<AdminVAT>();
AutoMapper.Mapper.CreateMap<IList<AdminVAT>, List<AdminVATDTO>>();
var res = AutoMapper.Mapper.Map<IList<AdminVAT>, IList<AdminVATDTO>>(listAdminVAT);
Erhalte ich diese exception :
Versuchen, map-System.Sammlungen.Generisches.IList`1[[AdminVAT, eSIT.GC.DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] auf "System".Sammlungen.Generisches.IList`1[[AdminVATDTO, eSIT.GC.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].
Dank.
Update1
public class AdminVAT : IAdminDecimal
{
public virtual int Id { get; set; }
public virtual int Code { get; set; }
public virtual decimal Value { get; set; }
}
public class AdminVATDTO : AdminVAT
{
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public override decimal Value { get; set; }
}
Ich habe noch 5 dezimal in meiner dropdown-Liste ...
Controller :
IList<AdminVAT> listAdminVAT = new AdministrationService(session).ListDecimal<AdminVAT>();
AutoMapper.Mapper.CreateMap<AdminVAT, AdminVATDTO>();
model.ListVAT = AutoMapper.Mapper.Map<IList<AdminVAT>, IList<AdminVATDTO>>(listAdminVAT);
HTML :
@Html.DropDownList("ddVAT", new SelectList(Model.ListVAT, "Id", "Value", Model.Estimation.AdminVAT))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Definieren Sie die Zuordnung nur zwischen den Typen einfach wie in der Dokumentation:
Dann werden Sie in der Lage zu konvertieren zwischen Listen, Sammlungen, enumerables dieser Typen:
res
wie gezeigt, in meinem Beispiel istIList<AdminVATDTO>
. Ich aktualisiert meine Antwort, um diese besser klar statt mitvar
.AdminVATDTO
stammt ausAdminVAT
? Ist diesAdminVATDTO
eigentlich sollte ein view-Modell? Es scheint so zu sein, weil ich sehe, dass Sie versuchen, einige Formatierungen auf. Wenn es ist es absolut sollte nicht leiten aus Ihrem Modell, sondern definieren eine eigene Klasse.