From 8d47714ae6427e9f3c270e925b09cdcd84378cc7 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@users.noreply.github.com> Date: Wed, 2 Apr 2025 09:55:48 +0800 Subject: [PATCH] Updated DI UnitOfWorkManager (markdown) --- DI-UnitOfWorkManager.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DI-UnitOfWorkManager.md b/DI-UnitOfWorkManager.md index 4251424..e3d0fed 100644 --- a/DI-UnitOfWorkManager.md +++ b/DI-UnitOfWorkManager.md @@ -1,6 +1,6 @@ 本篇文章内容引导,如何在 asp.net core 项目中使用特性(注解) 的方式管理事务。 -> UnitOfWorkManager 只可以管理 Repository 仓储对象的事务,直接 fsql.Insert\() 是不行的!!但是可以用 repository.Orm.Insert\!!repository.Orm 是特殊实现的 IFreeSql,与 当前事务保持一致。 +> UnitOfWorkManager 只可以管理 Repository 仓储对象的事务 支持六种传播方式(propagation),意味着跨方法的事务非常方便,并且支持同步异步: @@ -68,9 +68,10 @@ public class TransactionalAttribute : Rougamo.MoAttribute //Startup.cs public void ConfigureServices(IServiceCollection services) { - services.AddSingleton(fsql); - services.AddScoped(); - services.AddFreeRepository(null, typeof(Startup).Assembly); + services.AddFreeRepository(typeof(Startup).Assembly); + services.AddScoped(r => r.GetService().Orm); + services.AddScoped(r => new UnitOfWorkManager(fsql)); + //以这种方式注入的 IFreeSql 会跟随 UowManager 切换事务,原始 fsql 对象为 static 单例 //批量注入 Service }