加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:12:52 所属栏目:asp.Net 来源:网络整理
导读:我不确定这里是否有线程问题.在页面加载时,我正在执行两个Ajax请求,以从第三方API加载一些其他数据.以下是每种方法被调用的内容: private ListCaseCommentModel GetCaseCommentModels(string caseId) { var comments = CaseService.GetAllCaseCommentsByCas
我不确定这里是否有线程问题.在页面加载时,我正在执行两个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()之前进行映射的竞争有关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读