瀏覽代碼

😎配置用户机构集合过滤器时保证同一作用域

zuohuaijun 2 年之前
父節點
當前提交
d7b85d4856
共有 1 個文件被更改,包括 5 次插入9 次删除
  1. 5 9
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarFilter.cs

+ 5 - 9
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarFilter.cs

@@ -48,17 +48,13 @@ public static class SqlSugarFilter
         var orgFilter = _cache.Get<ConcurrentDictionary<Type, LambdaExpression>>(cacheKey);
         if (orgFilter == null)
         {
-            // 获取用户所属机构
-            //var orgIds = App.GetRequiredService<SysOrgService>().GetUserOrgIdList().GetAwaiter().GetResult();
-            
-
-            //上面这种方式获取不能保证在同一个作用域,某些时候访问机构列表时会报会报在scoped生命期中已创建实例
-            List<long> orgIds = new List<long>();
-            Scoped.Create((factory, scope) => {
+            // 获取用户所属机构,保证同一作用域
+            var orgIds = new List<long>();
+            Scoped.Create((factory, scope) =>
+            {
                 var services = scope.ServiceProvider;
-                orgIds=services.GetService<SysOrgService>().GetUserOrgIdList().GetAwaiter().GetResult();
+                orgIds = services.GetService<SysOrgService>().GetUserOrgIdList().GetAwaiter().GetResult();
             });
-
             if (orgIds == null || orgIds.Count == 0) return;
 
             // 获取业务实体数据表