Как использовать AutoMapper для отображения нескольких подклассов в один класс?

Предположим, у меня есть три класса, которые являются подклассами базового класса:

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; }
}

Я хотел бы сопоставить их с классом ViewModel, который выглядит следующим образом:

public class ViewModel
{
    public string BaseName { get; set; }
    public string SubName1 { get; set; }
    public string SubName2 { get; set; }
    public string SubName3 { get; set; }
}

ViewModel просто объединяет свойства для всех подклассов и сглаживает его. Я попытался настроить сопоставление следующим образом:

AutoMapper.CreateMap<BaseClass, ViewModel>();

Затем я попытался получить данные из моей базы данных следующим образом:

var items = Repo.GetAll<BaseClass>();
AutoMapper.Map(items, new List<ViewModel>());

Однако в итоге произошло то, что только свойство BaseName будет заполнено в ViewModel . Как мне настроить AutoMapper так, чтобы он также отображал свойства в подклассах?

12
задан Daniel T. 22 December 2010 в 20:48
поделиться