66 lines
2.2 KiB
C#
66 lines
2.2 KiB
C#
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;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据指定属性名称对序列进行排序
|
||
/// </summary>
|
||
/// <typeparam name="TSource">source中的元素的类型</typeparam>
|
||
/// <param name="source">一个要排序的值序列</param>
|
||
/// <param name="property">属性名称</param>
|
||
/// <param name="descending">是否降序</param>
|
||
/// <returns></returns>
|
||
public static ISugarQueryable<TEntity> OrderBy<TEntity>(this ISugarQueryable<TEntity> source, IEnumerable<SelectSort<TEntity>> 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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// sqlsugar
|
||
/// </summary>
|
||
/// <param name="service"></param>
|
||
public static void RegisterSqlSugar(IServiceCollection service)
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|