2011-06-17 62 views
9

我有一個IList<AdminVAT>,我想這個集合複製到IList<AdminVATDto>收集AutoMapper:複製的IList <>到的IList <>

我嘗試這樣做:

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

我收到此異常:

試圖將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,Ver sion = 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; } 
} 

我仍然有5位小數在我的下拉列表...

控制器:

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

回答

19

定義映射只簡單類型作爲documentation解釋之間:

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

然後你就可以列表,收藏之間進行轉換,可枚舉這些類型的:

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

我嘗試這樣做,我認爲。 res的類型是「IList ,IList >」,需要IList 2011-06-17 11:24:16

相關問題