gpt4 book ai didi

c# - 自动映射器 : Copy IList<> to IList<>

转载 作者:太空狗 更新时间:2023-10-29 17:36:07 29 4
gpt4 key购买 nike

我有一个 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);

我收到这个异常:

Trying to map System.Collections.Generic.IList`1[[AdminVAT, eSIT.GC.DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] to System.Collections.Generic.IList`1[[AdminVATDTO, eSIT.GC.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].

谢谢。

更新1

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; }
}

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

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))

最佳答案

仅定义简单类型之间的映射,如 documentation 中所述:

AutoMapper.Mapper.CreateMap<AdminVAT, AdminVATDTO>();

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

IList<AdminVATDTO> res = AutoMapper.Mapper.Map<IList<AdminVAT>, IList<AdminVATDTO>>(listAdminVAT);

关于c# - 自动映射器 : Copy IList<> to IList<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6384896/

29 4 0