asp.net-mvc-3 – AutoMapper线程问题(缺少类型映射配置或不支持的映射)?

我不确定这里是否有线程问题.在页面加载时,我正在执行两个Ajax请求,以从第三方API加载一些其他数据.以下是每种方法被调用的内容:
private List<CaseCommentModel> GetCaseCommentModels(string caseId) {
    var comments = CaseService.GetAllCaseCommentsByCaseId(caseId);

    Mapper.Reset();
    Mapper.CreateMap<CrmCaseComment,CaseCommentModel>();

    var caseCommentModels = Mapper.Map<List<CrmCaseComment>,List<CaseCommentModel>>(comments);

    return caseCommentModels;
}

private List<CaseAttachmentModel> GetCaseAttachmentModels(string caseId) {
    var attachments = AttachmentService.GetAttachmentsByParentId(caseId);

    Mapper.Reset();
    Mapper.CreateMap<CrmAttachment,CaseAttachmentModel>();

    var caseAttachmentModels = Mapper.Map<List<CrmAttachment>,List<CaseAttachmentModel>>(attachments);

    return caseAttachmentModels;
}

有时两种反应都会成功但是,如果我刷新页面,有时会出现以下异常:

缺少类型映射配置或不支持的映射

我可以从成功失败的两个请求转到不做任何代码更改;只需刷新页面即可.这是一个线程问题还是我错误地使用了映射器?

解决方法

您应该每个应用程序生命周期只创建一次映射.因此,将每个特定的CreateMap移动到应用程序启动.

您遇到的问题可能与在另一个线程调用Mapper.Reset()之前进行映射的竞争有关.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....