我有一个父域对象和子域对象被映射到单个 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
ChildID
ChildName
Child
ParentChildVM
所以我想将Child
域对象重新映射到 myParentChildVM
以填充缺失的属性。但我不想Parent
再次映射,因为它会覆盖编辑的值。有没有办法使用 AutoMapper (v6.1.1.0)将给定的Child
实例映射到我现有的实例中?ParentChildVM
编辑:
我想我知道我可以从Child
->添加一个映射ParentChildVM
,然后.ForMember
用来告诉它如何映射ChildID
and ChildName
,但实际上还有更多属性,所以我要问的是:有没有办法做到这一点并且仍然需要基于命名约定的映射的优势?IE 继续使用 AutoMapper 的“自动”部分。