Skip to content

使用[UnitOfWork] 为标记为virtual 的方法开启事务功能

[UnitOfWork("otherDbConn")] 指定数据库,默认使用连接字符串名称为DefaultConnection

具体应用步骤:

1. 配置UnitOfWork

Program.cs中添加添加UnitOfWork

csharp
//必要的步骤:添加动态代理
builder.Host.UseServiceProviderFactory(new DynamicProxyServiceProviderFactory());

//添加mysql
builder.Services.AddDatabase(FreeSql.DataType.MySql, "DefaultConnection"); 
//添加工作单元
builder.Services.AddUnitOfWork();

Startup.cs中添加UnitOfWork

csharp
//早期版本
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
                  {
                      webBuilder.UseStartup<Startup>();
                  })
    // 必要的步骤
    .UseServiceProviderFactory(new DynamicProxyServiceProviderFactory());

     
//添加mysql
services.AddDatabase(FreeSql.DataType.MySql, "DefaultConnection"); 
//添加工作单元
services.AddUnitOfWork();

2.使用UnitOfWork

csharp
 public interface ITestService
 { 
  int Add(int a,int b);
 }
 public class TestService:ITestService
 {
   
    [UnitOfWork]
    public int Add(int a,int b)
    {
      return a+b;
    }
 }