自动映射器映射异常:映射类型错误



我的解决方案中有以下类:

    public class VehicleMakeEntity
    {
      public Guid Id { get; set; }
      public string Name { get; set; }
      public ICollection<VehicleModelEntity> VehicleModels { get; set; }
    }
    public class VehicleModelEntity
    {
      public Guid Id { get; set; }
      public Guid VehicleMakeId { get; set; }
      public string Name { get; set; }
      public VehicleMakeEntity VehicleMake { get; set; }
    }

    public class VehicleMake : IVehicleMake
    {
      public Guid Id { get; set; }
      public string Name { get; set; }
      public ICollection<IVehicleModel> VehicleModels { get; set; }
    }
    public class VehicleModel : IVehicleModel
    {
      public Guid Id { get; set; }
      public Guid VehicleMakeId { get; set; }
      public string Name { get; set; }
      public IVehicleMake VehicleMake { get; set; }
    }

我有以下接口:

public interface IVehicleMake
{
    Guid Id { get; set; }
    string Name { get; set; }
    ICollection<IVehicleModel> VehicleModels { get; set; }
}
public interface IVehicleModel
{
    Guid Id { get; set; }
    Guid VehicleMakeId { get; set; }
    string Name { get; set; }
    IVehicleMake VehicleMake { get; set; }
}

我的自动映射器配置是这样的:

            AutoMapper.Mapper.Initialize(cfg =>
            {
              cfg.CreateMap<VehicleMakeEntity, VehicleMake>().ReverseMap();
              cfg.CreateMap<VehicleMakeEntity, IVehicleMake>().ReverseMap();
              cfg.CreateMap<IVehicleMake, VehicleMake>().ReverseMap();
              cfg.CreateMap<VehicleModelEntity, VehicleModel>().ReverseMap();
              cfg.CreateMap<VehicleModelEntity, IVehicleModel>().ReverseMap();
              cfg.CreateMap<IVehicleModel, VehicleModel>().ReverseMap();
            });

当我尝试做这样的事情时:

var makes = Context.VehicleMakes.AsQueryable();
var vehicleMakes = await makes.Include(m => m.VehicleModels).ToListAsync();
return new List<IVehicleMake>(AutoMapper.Mapper.Map<List<VehicleMake>>(vehicleMakes));

我收到映射类型错误:车辆模型实体 -> IVehicleModel。

我想我没有正确创建我的映射。我应该如何配置我的映射以避免这种情况?

映射配置似乎正确。QueryableExtensions.ToListAsync 方法返回一个Task<List<T>>,尝试在映射中传递vehicleMakes.Result

最新更新