У меня есть следующий домен объекта:AutoMapper Карта Ребенок недвижимости, который также имеет карту, определенную
public class DomainClass
{
public int Id { get; set; }
public string A { get; set; }
public string B { get; set; }
}
У меня есть следующие два объекта, которые я хочу сопоставить:
public class Parent
{
public int Id { get; set; }
public string A { get; set; }
public Child Child { get; set; }
}
public class Child
{
public int Id { get; set; }
public string B { get; set; }
}
Я настроил следующие карты:
Mapper.CreateMap<DomainClass, Parent>();
Mapper.CreateMap<DomainClass, Child>();
Если я составляю карту мой объект, используя следующий вызов, то свойство parent.Child равно нулю.
var domain = GetDomainObject();
var parent = Mapper.Map<DomainClass, Parent>(domain); // parent.Child is null
Я знаю, что могу написать следующее:
var domain = GetDomainObject();
var parent = Mapper.Map<DomainClass, Parent>(domain);
parent.Child = Mapper.Map<DomainClass, Child>(domain);
Есть ли способ я могу исключить, что второй вызов и AutoMapper сделать это для меня?
Не думал о вызове Mapper.Map внутри MapFrom. Спасибо – Dismissile
Просто голова к другим людям, которые могут это увидеть сейчас. Это больше не работает, если вы используете контейнер IOC для создания экземпляра вашего класса IMapper. – PJH
Вызов Mapper.Map внутри вашей конфигурации также разбивает ProjectTo на ошибку LINQ to Entities. –