У меня есть эта простая модель данных:
// Model
public class Address
{
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
.... Another values here ....
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Address Address { get; set; }
.... Another values here ....
}
// ViewModel
public class PersonViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
}
Я хочу сопоставить (используя AutoMapper ) значения PersonViewModel
с соответствующими свойствами (где AutoMapper обнаруживает, должно ли свойство находиться в корневом объекте или внутри подобъекта). Принимая во внимание, AutoMapper не должен создавать ни объекта Person, ни Address (объекты должны быть созданы вручную для заполнения других свойств перед автоматическим сопоставлением), и AutoMapper использует уже существующие объекты. Например:
var addressObj = new Address
{
... Filling some values...
};
var personObj = new Person
{
Address = addressObj;
... Filling some values...
};
mapper.Map(personViewModelObj, personObj); // How to make this work for both Person and Address properties?
Как заставить это автоматическое сопоставление работать как для свойств человека, так и для свойств адреса?
Должен ли я добавить два правила сопоставления (для адреса и для человека) и выполнить mapper.Map()
дважды?