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:缺少类型映射配置或不支持的映射的主要内容,如果未能解决你的问题,请参考以下文章

.net core启用 autoMapper

.net core使用AutoMapper

Automapper:缺少类型映射配置 .NET Web API

ASP.NET Core Automapper的Nuget安装和配置以及demo示例代码

.NET CORE AutoMapper使用

.NET Core中使用AutoMapper