使用[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;
}
}