From 0b9dfc93eecf635a7751a33b66eee4f9b49c1742 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@users.noreply.github.com> Date: Mon, 29 Jan 2024 08:52:43 +0800 Subject: [PATCH] Updated Repository (markdown) --- Repository.md | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/Repository.md b/Repository.md index 43d9944..bfe4b76 100644 --- a/Repository.md +++ b/Repository.md @@ -121,28 +121,19 @@ repo.DbContextOptions.AuditValue 适合与 Ioc AddScoped 信息结合。 ```csharp services.AddSingleton(fsql); -services.AddScoped(r => -{ +services.AddScoped>(r => e => { var user = r.GetService(); - var options = new RepositoryOptions(); - options.AuditValue += (_, e) => - { - if (user == null) return; - - if (e.AuditValueType == AuditValueType.Insert && - e.Object is IEntityCreated obj1 && obj1 != null) - { - obj1.CreatedUserId = user.Id; - obj1.CreatedUserName = user.Username; - } - if (e.AuditValueType == AuditValueType.Update && - e.Object is IEntityModified obj2 && obj2 != null) - { - obj2.ModifiedUserId = user.Id; - obj2.ModifiedUserName = user.Username; - } - }; - return options; + if (user == null) return; + if (e.AuditValueType == AuditValueType.Insert && + e.Object is IEntityCreated obj1 && obj1 != null) { + obj1.CreatedUserId = user.Id; + obj1.CreatedUserName = user.Username; + } + if (e.AuditValueType == AuditValueType.Update && + e.Object is IEntityModified obj2 && obj2 != null) { + obj2.ModifiedUserId = user.Id; + obj2.ModifiedUserName = user.Username; + } }); services.AddScoped(typeof(IBaseRepository<>), typeof(MyRepository<>)); services.AddScoped(typeof(IBaseRepository<,>), typeof(MyRepository<,>)); @@ -150,20 +141,15 @@ services.AddScoped(typeof(IBaseRepository<,>), typeof(MyRepository<,>)); //以下实现 MyRepository class MyRepository : BaseRepository where TEntity : class { - public MyRepository(IFreeSql fsql, RepositoryOptions options) : base(fsql, null, null) + public MyRepository(IFreeSql fsql, Action auditValue) : base(fsql, null, null) { uowManager?.Binding(this); - if (options != null) - { - DbContextOptions.NoneParameter = options.NoneParameter; - DbContextOptions.EnableGlobalFilter = options.EnableGlobalFilter; - DbContextOptions.AuditValue += options.AuditValueHandler; - } + if (auditValue != null) DbContextOptions.AuditValue += (_, e) => auditValue(e); } } class MyRepository : MyRepository where TEntity : class { - public MyRepository(IFreeSql fsql, RepositoryOptions options) : base(fsql, options) { } + public MyRepository(IFreeSql fsql, Action auditValue) : base(fsql, auditValue) { } } ```