我正在尝试设置AutoMapper
个人资料,并且我试图从实体映射到此视图模型:
public class CompositeViewModel
{
public ContactViewModel Contact;
public CompanyViewModel Company;
}
我当前的个人资料包含来自联系人的映射 - > ContactViewModel and Company - > CompanyViewModel都完美运行。但我想要做的是将单个Contact
映射到此复合视图模型中。 Contact
类的实例Company
作为属性,如:contact.Company
。
当我这样做时:
var viewModel = Mapper.Map<Contact, CompositeViewModel>(contact);
它正确填写CompositeViewModel.Company
contact.Company
中的详细信息,但我希望所有实体属性都复制到CompositeViewModel.Contact
。
目前我能看到的唯一解决方案是删除ContactViewModel.Contact
属性并将其展平,并使用我需要的所有Contact
属性。但这似乎应该是不必要的。
如果我还不够清楚,请告诉我,我会尽力详细说明。感谢。
答案 0 :(得分:1)
更简单的是做类似
的事情var viewModel=new viewModel
viewModel.Contact=Mapper.Map<Contact,ContactViewModel>(contact)
viewModel.Company=Mapper.Map<Company,CompanyViewModel>(contact.Company)
如果您对上述方法不满意,请阅读自动播放器文档以了解映射的自定义如何工作。