using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Identity.Data; using Microsoft.Extensions.DependencyInjection; using BZPT.Domains.Entity; using SqlSugar; using System.Text; namespace BZPT.Repositories { public static class SqlSugarExt { public static SqlSugar.DbType ToSugarDbType(this DBProvider dBProvider) { switch (dBProvider) { case DBProvider.MySqlClient: return DbType.MySql; case DBProvider.SqlClient: return DbType.SqlServer; case DBProvider.OracleClient: return DbType.Oracle; case DBProvider.PostgreSQL: return DbType.PostgreSQL; case DBProvider.SQLite: return DbType.Sqlite; default: return DbType.Odbc; } } /// /// 根据指定属性名称对序列进行排序 /// /// source中的元素的类型 /// 一个要排序的值序列 /// 属性名称 /// 是否降序 /// public static ISugarQueryable OrderBy(this ISugarQueryable source, IEnumerable> sorts = null) where TEntity : IEntity, new() { if (sorts != null) { StringBuilder strOrder = new StringBuilder(); foreach (var sort in sorts) { if(sort.FieldExp==null) { throw new Exception("未指定排序表达式FieldExp,SqlSugar 仓储禁用 FieldName 指定排序字段"); } source = source.OrderBy(sort.FieldExp, sort.IsAsc ? OrderByType.Asc : OrderByType.Desc); } } return source; } /// /// sqlsugar /// /// public static void RegisterSqlSugar(IServiceCollection service) { } } }