RuoVea.ExSugar 5.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package RuoVea.ExSugar --version 5.0.0                
NuGet\Install-Package RuoVea.ExSugar -Version 5.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RuoVea.ExSugar" Version="5.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RuoVea.ExSugar --version 5.0.0                
#r "nuget: RuoVea.ExSugar, 5.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RuoVea.ExSugar as a Cake Addin
#addin nuget:?package=RuoVea.ExSugar&version=5.0.0

// Install RuoVea.ExSugar as a Cake Tool
#tool nuget:?package=RuoVea.ExSugar&version=5.0.0                

RuoVea.ExSqlSugar

/* 打印sql语句*/ "PrintSql": true,

    private void SqlSugarConfigure(IServiceCollection services)
    {
        #region 配置sqlsuagr
        List<ConnectionConfig> connectConfigList = new List<ConnectionConfig>();
        //数据库序号从0开始,默认数据库为0
        var config= App.GetConfig<ConnectionDb>("ConnectionStrings");
        //默认数据库
        connectConfigList.Add(new ConnectionConfig
        {
            ConnectionString = config.DefaultDbString,
            DbType = (DbType)Convert.ToInt32(Enum.Parse(typeof(DbType), config.DefaultDbType)),
            IsAutoCloseConnection = true,
            ConfigId = config.DefaultDbNumber,
            InitKeyType = InitKeyType.Attribute
        });
        //业务数据库集合
        foreach (var item in config.DbConfigs)
		{
            connectConfigList.Add(new ConnectionConfig
            {
                ConnectionString = item.DbString,
                DbType = (DbType)Convert.ToInt32(Enum.Parse(typeof(DbType), item.DbType)),
                IsAutoCloseConnection = true,
                ConfigId = item.DbNumber,
                InitKeyType = InitKeyType.Attribute
            });
        }
        services.AddSqlSugar(connectConfigList.ToArray()
            , db =>
            {
                db.Aop.OnLogExecuting = (sql, pars) =>
                {
                    if (sql.StartsWith("SELECT"))
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                    }
                    if (sql.StartsWith("UPDATE") || sql.StartsWith("INSERT"))
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    if (sql.StartsWith("DELETE"))
                    {
                        Console.ForegroundColor = ConsoleColor.Blue;
                    }
                    //App.PrintToMiniProfiler("SqlSugar", "Info", sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
                    Console.WriteLine(sql + "\r\n\r\n" + SqlProfiler.ParameterFormat(sql, pars));
                    App.PrintToMiniProfiler("SqlSugar", "Info", SqlProfiler.ParameterFormat(sql, pars));
                };
                //执行超时时间
                db.Ado.CommandTimeOut = 30;
                //配置多租户全局过滤器
                db.QueryFilter.Add(new TableFilterItem<SysUser>(FilterExpression<SysUser>()));
                db.QueryFilter.Add(new TableFilterItem<SysOrg>(FilterExpression<SysOrg>()));
                db.QueryFilter.Add(new TableFilterItem<SysPos>(FilterExpression<SysPos>()));
                db.QueryFilter.Add(new TableFilterItem<SysRole>(FilterExpression<SysRole>()));
                db.QueryFilter.Add(new TableFilterItem<OnlineUser>(FilterExpression()));

                // 配置加删除全局过滤器
                db.QueryFilter.Add(new TableFilterItem<SysApp>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysCodeGen>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysCodeGenConfig>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysDictData>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysDictType>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysFile>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysMenu>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysNotice>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysOauthUser>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysOrg>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysPos>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysRole>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysTimer>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysUser>(it => it.IsDeleted == false));
                db.QueryFilter.Add(new TableFilterItem<SysTenant>(it => it.IsDeleted == false));
            });
        #endregion
    }

    /// <summary>
    /// 获取当前租户id
    /// </summary>
    /// <returns></returns>
    private object GetTenantId()
    {
        if (App.User == null) return null;
        return App.User.FindFirst(ClaimConst.TENANT_ID)?.Value;
    }

    /// <summary>
    /// 判断是不是超级管理员
    /// </summary>
    /// <returns></returns>
    private bool IsSuperAdmin()
    {
        if (App.User == null) return false;
        return App.User.FindFirst(ClaimConst.CLAINM_SUPERADMIN)?.Value == AdminType.SuperAdmin.GetHashCode().ToString();
    }

    /// <summary>
    /// 非超级管理员默认添加租户过滤
    /// </summary>
    /// <returns></returns>
    private Expression<Func<T, bool>> FilterExpression<T>() where T : DBEntityTenant
    {
        var superAdminViewAllData = Convert.ToBoolean(App.Configuration["SystemSettings:SuperAdminViewAllData"]);
        if (IsSuperAdmin() && superAdminViewAllData) return m => true;
        return m => m.TenantId == long.Parse(GetTenantId().ToString());
    }

    /// <summary>
    /// 非超级管理员默认添加租户过滤
    /// 在线用户比较特殊,数据库表格设计问题
    /// </summary>
    /// <returns></returns>
    private Expression<Func<OnlineUser, bool>> FilterExpression()
    {
        var superAdminViewAllData = Convert.ToBoolean(App.Configuration["SystemSettings:SuperAdminViewAllData"]);
        if (IsSuperAdmin() && superAdminViewAllData) return m => true;
        return m => m.TenantId == long.Parse(GetTenantId().ToString());
    }
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on RuoVea.ExSugar:

Package Downloads
RuoVea.OmiConfig

参数配置

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.0.5 0 9/22/2024
8.0.0.4 0 9/22/2024
8.0.0.3 40 9/19/2024
8.0.0.2 78 9/11/2024
8.0.0.1 81 8/29/2024
8.0.0 80 8/28/2024
7.0.0.5 0 9/22/2024
7.0.0.4 0 9/22/2024
7.0.0.3 33 9/19/2024
7.0.0.2 68 9/11/2024
7.0.0.1 71 8/29/2024
7.0.0 79 8/28/2024
6.0.18.8 0 9/22/2024
6.0.18.7 36 9/19/2024
6.0.18.6 90 9/11/2024
6.0.18.5 73 8/29/2024
6.0.18.4 81 8/28/2024
6.0.18.3 87 8/25/2024
6.0.18.2 119 3/13/2024
6.0.18.1 112 3/13/2024
6.0.18 249 3/25/2023
6.0.17 215 3/25/2023
6.0.16 213 3/25/2023
6.0.15 228 3/24/2023
6.0.13 221 3/15/2023
6.0.12 209 3/14/2023
6.0.11 226 3/14/2023
6.0.10 234 3/11/2023
6.0.9 475 8/22/2022
6.0.8 461 8/18/2022
6.0.7 426 8/17/2022
6.0.6 440 8/16/2022
6.0.5 476 7/5/2022
6.0.4 484 7/5/2022
6.0.3 499 6/10/2022
6.0.2 540 4/11/2022
6.0.1 547 4/11/2022
6.0.0 563 3/18/2022
5.0.1 622 3/18/2022
5.0.0 549 3/18/2022