使用[UnitOfWork]
为标记为virtual 的方法开启事务功能
[UnitOfWork("otherDbConnStr")]
指定数据库,默认使用连接字符串名称为DefaultDataString
具体应用步骤:
Startup.cs中配置数据连接,添加工作单元服务
string connStr =Configuration.GetConnectionString("DefaultConnection"); //以mysql为示例 services.AddDatabase<MySqlDatabaseProvider>(connStr); //添加工作单元 services.AddUnitOfWork();
添加动态代理服务
Program
的CreateHostBuilder
处添加UseServiceProviderFactory(new DynamicProxyServiceProviderFactory())
builder.Host.UseServiceProviderFactory(new DynamicProxyServiceProviderFactory());
或者
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) // 略 .UseServiceProviderFactory(new DynamicProxyServiceProviderFactory());
注意:只会对以名称以Service
结尾或以Repository
结尾的接口或类生效
开始使用,
UnitOfWork
应用示例代码public interface ITestService { [UnitOfWork] int Add(int a,int b); } public class TestService:ITestService { IDatabase db; public TestService(IApplicationDbContext dbContext) { db=dbContext.Current; } public int Add(int a,int b) { //保存数据 //db.Insert(object) return a+b; } }
© 2022 rscode.cn MIT license