masastack / MASA.Framework

.NET next-generation microservice development framework, which provides cloud native best practices based on Dapr.
https://docs.masastack.com/framework/getting-started/overview
MIT License
695 stars 111 forks source link

工作单元使用情况 #696

Closed magiboys closed 5 months ago

magiboys commented 5 months ago

Description

using (IUnitOfWork unitOfWork = _unitOfWorkManager.CreateDbContext(false)) { IStockDailyMarketRepository stockDailyMarketRepository = unitOfWork.ServiceProvider.GetRequiredService(); StockDailyMarket? market = await stockDailyMarketRepository.FindByDateAsync(stock.Id, input.tdate); if (market != null) { await stockDailyMarketRepository.RemoveAsync(market); } await unitOfWork.SaveChangesAsync(); await unitOfWork.CommitAsync(); }

        //后面有个逻辑拦截
        if (await _stockDailyMarketRepository.IsExistsAsync(stock.Id, date))
        {
            throw new UserFriendlyException($"股票`{stock.Code}-{stock.Name}`已存在`{date:yyyy-MM-dd}`行情数据");
        }
       //重新插入数据库操作
       _stockDailyMarketRepository.AddAsync(......);

       我想把删除操作提前提交到数据库,但发现程序会时不时报死锁错误

.NET version

No response

MASA Framework version

No response