AutoMapper:将IList <>复制到IList <>

Kri*_*s-I 9 c# automapper

我有一个IList<AdminVAT>,我想把这个集合复制到IList<AdminVATDto>收藏

我试过这个:

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);
Run Code Online (Sandbox Code Playgroud)

我收到这个例外:

尝试将System.Collections.Generic.IList`1 [[AdminVAT,eSIT.GC.DataModel,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]映射到System.Collections.Generic.IList`1 [[AdminVATDTO] ,eSIT.GC.WebUI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]].

谢谢.

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; }
}
Run Code Online (Sandbox Code Playgroud)

我的下拉列表中仍有5位小数...

控制器:

IList<AdminVAT> listAdminVAT = new AdministrationService(session).ListDecimal<AdminVAT>();
AutoMapper.Mapper.CreateMap<AdminVAT, AdminVATDTO>();
model.ListVAT = AutoMapper.Mapper.Map<IList<AdminVAT>, IList<AdminVATDTO>>(listAdminVAT);
Run Code Online (Sandbox Code Playgroud)

HTML:

@Html.DropDownList("ddVAT", new SelectList(Model.ListVAT, "Id", "Value", Model.Estimation.AdminVAT))
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 20

仅在文档中说明的简单类型之间定义映射:

AutoMapper.Mapper.CreateMap<AdminVAT, AdminVATDTO>();
Run Code Online (Sandbox Code Playgroud)

然后,您将能够在列表,集合,这些类型的枚举之间进行转换:

IList<AdminVATDTO> res = AutoMapper.Mapper.Map<IList<AdminVAT>, IList<AdminVATDTO>>(listAdminVAT);
Run Code Online (Sandbox Code Playgroud)