将不同的ViewModel映射到同一个Model时,AutoMapperMappingException

时间:2014-06-01 12:58:44

标签: c# asp.net-mvc-5 automapper

我正在使用Automapper将我的视图模型映射到我的域模型。在我的情况下,我有两个ViewModel,我需要映射到相同的模型。

我创建两个配置文件foreach视图模型,然后在Mapper.Initialize我添加它们。然后在我的控制器中,当我尝试将我的ViewModel映射到模型,以便我可以将它传递给服务时出现此错误Missing type map configuration or unsupported mapping.

我的代码

public static class AutoMapperWebConfiguration
    {
        public static void Configure()
        {
            Mapper.Initialize(cfg => cfg.AddProfile(new CompanyRegisterViewModelProfile()));
            Mapper.Initialize(cfg => cfg.AddProfile(new CompanyActivateViewModelProfile()));
        }
    }

然后在我的控制器中:

CompanyEmployee CompanyEmployee = Mapper.Map<CompanyRegisterViewModel, CompanyEmployee>(model,);

现在,如果我删除了第二个配置文件CompanyActivateViewModelProfile,我没有收到任何错误,并且正确完成了maping。关于我做错了什么想法?

1 个答案:

答案 0 :(得分:1)

您通过两次调用Mapper.Initialize重新初始化AutoMapper,导致删除第一个配置文件。试试这个:

Mapper.Initialize(cfg => 
    {
        cfg.AddProfile(new CompanyRegisterViewModelProfile());
        cfg.AddProfile(new CompanyActivateViewModelProfile());
    });