У меня есть родительский и дочерний доменный объект, сопоставленный с одним объектом 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
на мой ParentChildVM
, чтобы заполнить недостающие свойства. Но я не хочу отображать Parent
снова, потому что он перезапишет отредактированные значения. Есть ли способ сопоставить данный Child
экземпляр с моим существующим ParentChildVM
с помощью AutoMapper (v6.1.1.0)?
EDIT:
Полагаю, я знаю, что могу добавить отображение из Child
-> ParentChildVM
, а затем использовать .ForMember
, чтобы указать ему, как сопоставлять ChildID
и ChildName
, но в действительности свойств гораздо больше так что я спрашиваю: есть ли способ сделать это и при этом использовать преимущества сопоставления на основе соглашения об именах? И.Е. продолжайте использовать «Авто» часть AutoMapper.