2014-01-17 147 views
0

我視圖模型:AutoMapper不映射視圖模型到模型

public class EmployeeViewModel 
    { 
     public Developer Developer { get; set; } 
     public Administrator Administrator { get; set; } 
    } 

和型號:

public class Developer 
     { 
      //some stuff 
     } 

我想它在動作映射:

public ActionResult AddDeveloper(EmployeeViewModel employee) 
     { 
      AutoMapper.Mapper.CreateMap<EmployeeViewModel, Developer>(); 
      Developer developer = AutoMapper.Mapper.Map<EmployeeViewModel, Developer>(employee); 
      ....... 
     } 

之後developer變量沒有employee具有的參數值。你可以幫我嗎?

+2

爲什麼不直接致電employee.Developer? – Sean

+0

創建地圖後,您還可以調用Mapper.AssertConfigurationIsValid()。對於需要自定義的映射,可能會有一些無效的內容 – Sean

+0

我們確實可以通過查看「內容」來做到這一點,並且在添加所有類型的完整定義時添加。 –

回答

0

你只是試圖將一個類映射到一個屬性有效。您需要明確地告訴如何既元素帶來到同一級別,例如:

public ActionResult AddDeveloper(EmployeeViewModel employee) 
     { 
      AutoMapper.Mapper.CreateMap<EmployeeViewModel, Developer>() 
         .ForMember(destination => destination, option => option.MapFrom(source => source.Developer)); 
      Developer developer = AutoMapper.Mapper.Map<EmployeeViewModel, Developer>(employee); 
     } 

現在,同樣的事情應該工作。我從來沒有嘗試過在那個級別做映射,我懷疑你可能不得不嘗試使用像這裏的「AfterMap」功能:https://stackoverflow.com/a/4750709/3002953

相關問題