我有一个父级和子级域对象,它们被映射到一个ViewModel对象。例如
class Parent
{
public int ID {get;set;}
public string Name {get;set;}
public Child Child {get;set;}
}
class Child
{
public int ID {get; set;}
public string Name {get; set;}
}
class ParentChildVM
{
public int ID {get;set;}
public string Name {get;set;}
public int ChildID {get;set;}
public string ChildName {get; set;}
}
类型是在静态配置文件中映射的,它仅使用内置的命名约定来映射属性并实现展平。
我将此ParentChildVM
与ASP.NET MVC视图结合使用,该视图将ID
和Name
放入表单输入中,但仅 displays {{1 }}和ChildID
。由于ChildName
的属性不在表单字段中,因此保存时不会将它们发布回服务器,并且在Child
中是空的,而ParentChildVM
是根据发布的值重建的。
因此,我想将Child
域对象重新映射到我的ParentChildVM
,以填写缺少的属性。但是我不想再次映射Parent
,因为它将覆盖已编辑的值。是否可以通过AutoMapper(v6.1.1.0)将给定的Child
实例映射到我现有的ParentChildVM
中?
编辑:
我想我知道我可以从Child
-> ParentChildVM
添加一个映射,然后使用.ForMember
告诉它如何映射ChildID
和ChildName
,但实际上有很多属性,所以我要问的是:有没有办法做到这一点,并且仍然利用基于命名约定的映射?即继续使用AutoMapper的“自动”部分。