我正在使用 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 无法实例化(这是有道理的,它是一个接口,而不是一个类)。
映射到 AppleTreeDto 时,如何告诉 Automapper 将 AppleDto 用于 Fruits 集合?这样做的最佳方式是什么?我应该为每个接口属性编写一个类型转换器吗?