我正在尝试将多个域模型映射到一个视图模型。我发现this链接可以做到这一点。但是,我有几个视图模型中不存在的域模型属性。当我尝试映射模型时,我收到错误:
缺少类型映射配置或不支持的映射。
这是因为我没有忽略其他属性。我看到的所有答案都在Mapper.CreateMap函数中使用了option.Ignore()。但是,在我提供的链接中,不使用Mapper.CreateMap函数。对AutoMapper的唯一调用是:
Mapper.Map(source, destination, sourceType, destinationType);
在这种情况下如何进行忽略?或者有更好的方法来映射多个模型并忽略属性吗?
答案 0 :(得分:5)
您Mapper.CreateMap
的所有您要处理的对象应该有一个Application_Start
:
Mapper.CreateMap<SourceDomain1, MyViewModel>();
Mapper.CreateMap<SourceDomain2, MyViewModel>();
Mapper.CreateMap<SourceDomain3, MyViewModel>();
您的域模型中具有视图模型中不存在的属性的事实根本不是问题。它们不会被考虑在内。另一方面,您可以在配置AutoMapper时使用.Ignore()
方法,以指示应忽略源和目标中存在的某些属性。