.NetCore中事务没有正常完成

1. 示例代码

cs 复制代码
async Task<string> FunCode()
{
    //业务代码

    using var trans = TransactionHelper.GetTransactionScope();
            
    //插入表A,A中有Name字段
    await 数据库操作1;
    await 数据库操作2;    

    trans.Complete();

    //调用其他系统接口
    await ERP.SendContent();
}

2. 代码描述

核心代码在于一个用using包起来的事务操作,后面加了一个接口调用的功能

3. 场景描述

在MES系统触发FunCode()方法时,先执行数据库操作,在执行调用ERP接口,ERP接口会立马回复,并传递A表中的Name作为参数调用MES系统另外一个接口CheckNameApi,该接口会根据Name字段来判断表中是否存在记录。

4. 异常描述

CheckNameApi中的在根据Name在A表中查数据时,无法查到。但是人为直接在数据库中是能查到的。且在对比表A插入的时间,和CheckNameApi接口调用的时间,有相差3秒。

5. 解决方案

trans.Complete();后面加上一句 trans.Dispose();

cs 复制代码
 trans.Complete();
 trans.Dispose();

6. 具体原因

母鸡。。。

相关推荐
u0103055272 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055272 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝3 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055274 天前
Java图像处理实战指南
人工智能·1024程序员节
u0103055274 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055276 天前
Java实用类应用精讲
人工智能·1024程序员节
u0103055277 天前
Java I/O核心操作实战
人工智能·1024程序员节
u0103055278 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u0103055278 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节
u01030552710 天前
使用BufferedReader读取控制台输入
人工智能·1024程序员节