Я использую запрашиваемые расширения AutoMapper для сопоставления сущностей Entity Framework Core с DTO.
var appleTrees = context.AppleTrees
.ProjectTo<AppleTreeDto>(mapper.ConfigurationProvider);
Некоторые DTO имеют такие свойства интерфейса, как это:
public IFruitTreeDto
{
List<IFruitDto> Fruits { get; set; }
}
public class AppleDto : IFruitDto
{
...
}
public AppleTreeDto : IFruitTreeDto
{
public List<IFruitDto> Fruits { get; set; }
}
Конфигурация отображения находится в профиле AutoMapper:
CreateMap<EF.AppleTree, AppleTreeDto>();
CreateMap<EF.Apple, AppleDto>();
В настоящее время я получаю исключение «Отсутствует карта от Apple до IFruitDto. Создать с помощью CreateMap. После того, как я добавил эту карту, я получил исключение, что IFruitDto не может быть создан (это имеет смысл, это интерфейс, а не класс).
Как мне сказать Automapper использовать AppleDto для коллекции Fruits, когда сопоставление с AppleTreeDto? Каков оптимальный способ сделать это? Я должен написать конвертер типа для каждого свойства интерфейса?