using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.DB.Models; using WIDESEAWCS_Core.Tenants; namespace WIDESEAWCS_Core.DB { public class RepositorySetting { private static readonly Lazy<IEnumerable<Type>> AllEntitys = new(() => { var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; var referencedAssemblies = System.IO.Directory.GetFiles(path, MainDb.AssemblyName).Select(Assembly.LoadFrom).FirstOrDefault(); return referencedAssemblies .GetTypes() .Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(BaseEntity))) .Where(it => it.FullName != null && it.FullName.StartsWith(MainDb.EntityNameSpace)); }); public static IEnumerable<Type> Entitys => AllEntitys.Value; /// <summary> /// é…ç½®å®žä½“è½¯åˆ é™¤è¿‡æ»¤å™¨<br/> /// 统一过滤 è½¯åˆ é™¤ æ— éœ€è‡ªå·±å†™æ¡ä»¶ /// </summary> public static void SetDeletedEntityFilter(SqlSugarScopeProvider db) { //db.QueryFilter.AddTableFilter<IDeleteFilter>(it => it.IsDeleted == false); } /// <summary> /// é…置租户 /// </summary> public static void SetTenantEntityFilter(SqlSugarScopeProvider db) { if (App.User is not { UserId: > 0, TenantId: > 0 }) { return; } //多租户 å•表 //db.QueryFilter.AddTableFilter<ITenantEntity>(it => it.TenantId == App.User.TenantId || it.TenantId == 0); //多租户 多表 //db.SetTenantTable(App.User.TenantId.ToString()); } } }