Дочернее свойство карты 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 имеет значение null.

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 сделать это за меня?

52
задан Dismissile 20 January 2012 в 05:24
поделиться