2014-01-17 122 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

相关问题