多个 Wpf 客户端 + SQL Server 数据库并发问题

问题描述

我有一个 WPF 应用程序在多台客户端 PC 上运行,EF Core 连接到单个 sql Server。

当我检索交易号时,我统计交易表记录并加一个

我的问题是当两个客户同时请求交易号时,他们得到相同的交易号。

非常感谢有关此问题的任何帮助。

public async Task<Response<PassportOutputModel>> CreateAsync(PassportInputModel model)
{
    if (!await _validation.IsCorrectAsync(model, EnumPermission.AddPassport))
        return _validation.Response; 

    var number = await UnitOfWork.Passports.GetLastPassportNumberAsync();  

    var passport = Mapper.Map<Passport>(model);

    passport.Number = number;

    await UnitOfWork.Passports.AddAsync(passport);
    await UnitOfWork.CompleteAsync();

    return Response.SuccessCreate(Mapper.Map<PassportOutputModel>(passport));
}

解决方法

同时输入多个字段,不会出现重复、空白或跳跃。

1- 在每次插入过程后触发自动添加一个数字。

2- 索引号以避免重复并使过程顺利和快速。]

14_Record_In_Same_Time