2014-02-17 50 views
0

我是Automapper的新手,已經能夠處理大多數映射錯誤(除了這個之外)。一些無效參數與Automapper構建錯誤映射

當我將CaseInfo實體映射到CaseInfoEdit視圖模型時,我在我的(HTTPGET)Edit控制器方法中出現錯誤,該模型表示我在下面的代碼行上有一些無效參數。

var vModel = Mapper.Map<CaseInfo, CaseInfoEditViewModel>(editCase); 

這種映射問題開始後,我包含在此CaseInfoRepository.Get()語句返回檢察長實體。該查詢的CaseInfo結果將與Attorney參考對象正確返回。

var editCase = unitOfWork.CaseInfoRepository.Get(c => c.CaseInfoID == id, includeProperties: "Attorney"); 

該視圖模型有一個外鍵AttorneyId和一個Attorney引用屬性,這就是爲什麼映射失敗我相信。 CaseInfo實體和CaseInfoViewModel都完全一樣。

public class CaseInfoEditViewModel 
{ 
    public int CaseInfoID { get; set; } 

    // a bunch of property sets and gets ... 

    public int AttorneyId { get; set; } 
    public virtual Attorney Attorney { get; set; } 

在嘗試更正映射時,我添加了一個ForMember將源和目標設置爲Attorney引用屬性,這對映射問題沒有幫助。任何幫助正確的方式來映射引用屬性將不勝感激。

Mapper.CreateMap<CaseInfoEditViewModel, CaseInfo>() 
       .ForMember(dst => dst.AttorneyId, opt => opt.MapFrom(src => src.AttorneyId)) 
       .ForMember(dst => dst.Attorney, opt => opt.MapFrom(src => src.Attorney)) 
       .ForMember(dst => dst.CaseInfoID, opt => opt.Ignore()); 

回答