Como uso o AutoMapper para mapear várias subclasses em uma classe?
Vamos supor que eu tenho três classes que são subclasses de uma classe base:
public class BaseClass
{
public string BaseName { get; set; }
}
public class Subclass1 : BaseClass
{
public string SubName1 { get; set; }
}
public class Subclass2 : BaseClass
{
public string SubName2 { get; set; }
}
public class Subclass3 : BaseClass
{
public string SubName3 { get; set; }
}
Eu gostaria de mapear isso para uma classe ViewModel que se parece com isso:
public class ViewModel
{
public string BaseName { get; set; }
public string SubName1 { get; set; }
public string SubName2 { get; set; }
public string SubName3 { get; set; }
}
ViewModel
simplesmente combina as propriedades em todas as subclasses e nivela-as. Eu tentei configurar o mapeamento da seguinte forma:
AutoMapper.CreateMap<BaseClass, ViewModel>();
Então eu tentei pegar dados do meu banco de dados da seguinte forma:
var items = Repo.GetAll<BaseClass>();
AutoMapper.Map(items, new List<ViewModel>());
No entanto, o que acaba acontecendo é que apenas oBaseName
propriedade será preenchida noViewModel
. Como eu configuraria o AutoMapper para que ele também mapeie as propriedades nas subclasses?