Przeglądaj źródła

调整机构过滤器中获取SysOrgService的方法,保证在同一作用域中获取实例

Signed-off-by: yesudwanyan <616464381@qq.com>
yesudwanyan 2 lat temu
rodzic
commit
92b2a0f9ae
1 zmienionych plików z 10 dodań i 1 usunięć
  1. 10 1
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarFilter.cs

+ 10 - 1
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarFilter.cs

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