hwh
2024-06-19 0e507245da960f69f70242a884040cd2719f5b33
unitofwork事务
4个文件已修改
1个文件已添加
79 ■■■■■ 已修改文件
Wms/Utility/UnitOfWork/SqlSugarUnitOfWork.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Utility/Utility.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllTaskServer/BllTaskSyncServer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllTaskServer/IBllTaskSyncServer.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Startup.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Utility/UnitOfWork/SqlSugarUnitOfWork.cs
New file
@@ -0,0 +1,69 @@
using Microsoft.AspNetCore.Mvc.Filters;
using SqlSugar;
namespace Utility
{
    /// <summary>
    /// SqlSugar 事务和工作单元
    /// </summary>
    public sealed class SqlSugarUnitOfWork : IUnitOfWork
    {
        /// <summary>
        /// SqlSugar 对象
        /// </summary>
        private readonly ISqlSugarClient _sqlSugarClient;
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="sqlSugarClient"></param>
        public SqlSugarUnitOfWork(ISqlSugarClient sqlSugarClient)
        {
            _sqlSugarClient = sqlSugarClient;
        }
        /// <summary>
        /// 开启工作单元处理
        /// </summary>
        /// <param name="context"></param>
        /// <param name="unitOfWork"></param>
        /// <exception cref="NotImplementedException"></exception>
        public void BeginTransaction(FilterContext context, UnitOfWorkAttribute unitOfWork)
        {
            _sqlSugarClient.AsTenant().BeginTran();
        }
        /// <summary>
        /// 提交工作单元处理
        /// </summary>
        /// <param name="resultContext"></param>
        /// <param name="unitOfWork"></param>
        /// <exception cref="NotImplementedException"></exception>
        public void CommitTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork)
        {
            _sqlSugarClient.AsTenant().CommitTran();
        }
        /// <summary>
        /// 回滚工作单元处理
        /// </summary>
        /// <param name="resultContext"></param>
        /// <param name="unitOfWork"></param>
        /// <exception cref="NotImplementedException"></exception>
        public void RollbackTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork)
        {
            _sqlSugarClient.AsTenant().RollbackTran();
        }
        /// <summary>
        /// 执行完毕(无论成功失败)
        /// </summary>
        /// <param name="context"></param>
        /// <param name="resultContext"></param>
        /// <exception cref="NotImplementedException"></exception>
        public void OnCompleted(FilterContext context, FilterContext resultContext)
        {
            _sqlSugarClient.Dispose();
        }
    }
}
Wms/Utility/Utility.csproj
@@ -24,6 +24,7 @@
    <PackageReference Include="Serilog.Sinks.Async" Version="2.0.0" />
    <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
    <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
    <PackageReference Include="SqlSugarCore" Version="5.1.3.43" />
    <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
    <PackageReference Include="ZXing.Net" Version="0.16.7" />
  </ItemGroup>
Wms/WMS.BLL/BllTaskServer/BllTaskSyncServer.cs
@@ -1,5 +1,6 @@
using Model.InterFaceModel;
using Model.ModelDto.BllTaskDto;
using Model.ModelDto.SysDto;
using Model.ModelVm.BllTaskVm;
using Newtonsoft.Json;
using SqlSugar;
@@ -7,6 +8,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Utility;
using Utility.Tools;
using WMS.BLL.LogServer;
using WMS.DAL;
@@ -27,6 +30,7 @@
        public BllTaskSyncServer() : base(Db)
        {
        }
        /// <summary>
        /// 获取任务列表
        /// </summary>
Wms/WMS.IBLL/IBllTaskServer/IBllTaskSyncServer.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Entity.BllTaskEntity;
namespace WMS.IBLL.IBllTaskServer
Wms/Wms/Startup.cs
@@ -20,6 +20,7 @@
using Utility.Extension;
using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.Http;
using SqlSugar;
namespace Wms
{
@@ -121,6 +122,9 @@
            //注册serilog
            services.AddConfigSerilog();
            services.AddScoped<ApiResponseActionFilter>();
            services.AddScoped<UnitOfWorkAttribute>();
            services.AddSingleton<ISqlSugarClient>(DataContext.Db); // 单例注册
            services.AddTransient<IUnitOfWork, SqlSugarUnitOfWork>(); // 事务与工作单元注册
        }
        public void ConfigureContainer(ContainerBuilder builder)
        {