C# AutoMappingException:映射类型错误

C# AutoMappingException:映射类型错误,c#,automapper,C#,Automapper,我的解决方案中有以下类: public class VehicleMakeEntity { public Guid Id { get; set; } public string Name { get; set; } public ICollection<VehicleModelEntity> VehicleModels { get; set; } } public class VehicleModelEntit

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

    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; }
    }
公共类车辆制造商实体
{
公共Guid Id{get;set;}
公共字符串名称{get;set;}
公共ICollection车辆模型{get;set;}
}
公共级车辆标准
{
公共Guid Id{get;set;}
公共Guid VehicleMakeId{get;set;}
公共字符串名称{get;set;}
公共车辆制造实体车辆制造{get;set;}
}
公共级车辆品牌:IVehicleMake
{
公共Guid Id{get;set;}
公共字符串名称{get;set;}
公共ICollection车辆模型{get;set;}
}
公共类车辆模型:IVehicleModel
{
公共Guid Id{get;set;}
公共Guid VehicleMakeId{get;set;}
公共字符串名称{get;set;}
公共IVehicleMake车辆make{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; }
}
公共接口IVehicleMake
{
Guid Id{get;set;}
字符串名称{get;set;}
ICollection车辆模型{get;set;}
}
公共接口IVehicleModel
{
Guid Id{get;set;}
Guid VehicleMakeId{get;set;}
字符串名称{get;set;}
IVehicleMake车辆make{get;set;}
}
我的AutoMapper配置如下:

            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));
AutoMapper.Mapper.Initialize(cfg=>
{
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
});
当我尝试这样做时:

            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));
var makes=Context.VehicleMakes.AsQueryable();
var vehicleMakes=wait makes.Include(m=>m.vehicleMakes.toListSync();
返回新列表(AutoMapper.Mapper.Map(vehicleMakes));
我得到了映射类型错误:VehicleModelenty->IVehicleModel


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

映射配置似乎正确。该方法返回一个
任务
,尝试在映射中传递
vehicleMakes.Result

检查错误中的内部异常。我在配置中添加了以下映射:cfg.CreateMap().ReverseMap();我不再收到任何错误,但是列表没有填充,它是空的,所以问题没有解决。另外,当我在检索make时删除“Include(m=>m.VehicleModels)”时,然后映射就开始工作了。我忘了提到我使用Ninject动态加载映射配置,如下所示:公共类DIModule:Ninject.Modules.NinjectModule{public override void load(){//Automapper initialization//}这可能是问题所在吗?