AutoMapper 和 .NET Core:缺少类型映射配置或不支持的映射
Posted
技术标签:
【中文标题】AutoMapper 和 .NET Core:缺少类型映射配置或不支持的映射【英文标题】:AutoMapper & .NET Core: Missing type map configuration or unsupported mapping 【发布时间】:2021-11-21 09:20:09 【问题描述】:今天我遇到了一个过去几个小时都无法解决的问题。我创建了一个 GitHub Gist here,它显示了我的代码。 AutoMapper 一直返回的错误如下:
缺少类型映射配置或不支持的映射。 映射类型: 对象 -> 订单 System.Object -> Rig.Commercial.Reservation.DataStorage.Entities.Order
谁能帮帮我?
【问题讨论】:
请在问题本身中发布minimal reproducible example,而不是在外部链接上。 我认为这可能是您的配置缺少注册。试试services.AddAutoMapper(config => config.AddProfile(typeof(BookingsMappers)))
@mu88 我猜他想用依赖注入
@Dominik 当然,这行必须添加到ConfigureServices()
@mu88 这就是 RegisterAutoMapper();方法被调用。我已经尝试过您的答案,但不幸的是,这并没有真正奏效。
【参考方案1】:
看起来您构建 Profile 类的方式是错误的。那是您代码中的 BookingsMappers
类。
根据documentation here。修复可能会将您的 BookingsMappers
类替换为这样:
public class BookingsMappers : Profile
public BookingsMappers()
CreateMap<CreateBooking, Order>()
.BeforeMap((createBooking, order) => order.Created = DateTime.Now)
.BeforeMap((createBooking, order) => order.Modified = DateTime.Now)
.BeforeMap((createBooking, order) => order.InternalId = Guid.NewGuid());
【讨论】:
以上是关于AutoMapper 和 .NET Core:缺少类型映射配置或不支持的映射的主要内容,如果未能解决你的问题,请参考以下文章
Automapper:缺少类型映射配置 .NET Web API