1

我有一个父域对象和子域对象被映射到单个 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 ChildIDChildNameChildParentChildVM

所以我想将Child域对象重新映射到 myParentChildVM以填充缺失的属性。但我不想Parent再次映射,因为它会覆盖编辑的值。有没有办法使用 AutoMapper (v6.1.1.0)将给定的Child实例映射到我现有的实例中?ParentChildVM

编辑:

我想我知道我可以从Child->添加一个映射ParentChildVM,然后.ForMember用来告诉它如何映射ChildIDand ChildName,但实际上还有更多属性,所以我要问的是:有没有办法做到这一点并且仍然需要基于命名约定的映射的优势?IE 继续使用 AutoMapper 的“自动”部分。

4

0 回答 0