【发布时间】:2021-09-25 23:12:04
【问题描述】:
我已经在Startup.cs 的 EF Core 中设置了 AutoMapper,如下所示:
services.AddAutoMapper(
typeof(EventItemEstablishmentProfile),
typeof(EventItemProfile),
typeof(GroceryItemEstablishmentProfile),
typeof(GroceryItemProfile),
typeof(GroceryStoreItemEstablishmentProfile),
typeof(GroceryStoreItemProfile),
typeof(RestaurantItemEstablishmentProfile),
typeof(RestaurantItemProfile),
typeof(MenuItemEstablishmentProfile),
typeof(MenuItemProfile));
我有这些 AutoMapper 配置文件:
namespace Vepo.Domain
{
public class GroceryItemProfile : Profile
{
public GroceryItemProfile()
{
CreateMap<GroceryItem, GroceryItemDto>();
CreateMap<GroceryItemDto, GroceryItem>();
}
}
}
namespace Vepo.Domain
{
public class GroceryItemEstablishmentProfile : Profile
{
public GroceryItemEstablishmentProfile()
{
CreateMap<GroceryItemEstablishment, GroceryItemEstablishmentDto>();
CreateMap<GroceryItemEstablishmentDto, GroceryItemEstablishment>();
}
}
}
GroceryItemEstablishment 包含一个名为 VeganItem 的 GroceryItem 类型字段,因此我们在这里讨论的是嵌套映射。
当需要像这样在代码中使用它时:
public async override Task<TVeganItemEstablishmentDto> Insert(TVeganItemEstablishmentDto entity)
{
var toReturnVeganItem = entity.VeganItem;
var toReturnEstablishment = entity.Establishment;
var x = mapper.Map<TVeganItem>(entity);
我得到错误:
AutoMapper.AutoMapperMappingException:缺少类型映射配置 或不受支持的映射。
映射类型:对象 -> GroceryItem System.Object -> Vepo.Domain.GroceryItem
为什么错误说完全涉及类型Object?
调试代码我们可以看到类型不是Object:
【问题讨论】:
标签: c# automapper asp.net5