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)
{
}
}
}