diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.nuspec b/Src/Asp.Net/SqlSugar/SqlSugar.nuspec index 3a77c62d0..a88447ba8 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.nuspec +++ b/Src/Asp.Net/SqlSugar/SqlSugar.nuspec @@ -2,7 +2,7 @@ SqlSugar - 5.0.6.5 + 5.0.6.6 SqlSugar .NET ORM Framework 版本, 5.0.3.3-max 最低要求 .Net Framework 4.6 | 5.0.0.2-5.0.3.2 最低要求 .Net Framework 4.5 | 4.0-4.9.11 最低要求 .Net Framework 4.0+ .NET ORM sun kaixuan landa diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index a87a01915..d7794a4a4 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1911,7 +1911,28 @@ namespace SqlSugar { QueryBuilder.CheckExpression(expression, "OrderBy"); var isSingle = QueryBuilder.IsSingle(); - if ((expression as LambdaExpression).Body is NewExpression) + if (expression.ToString().IsContainsIn("Desc(", "Asc(")) + { + var orderValue = ""; + var newExp = (expression as LambdaExpression).Body as NewExpression; + foreach (var item in newExp.Arguments) + { + if (item is MemberExpression) + { + orderValue += + QueryBuilder.GetExpressionValue(item, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple).GetResultString() + ","; + } + else + { + orderValue += + QueryBuilder.GetExpressionValue(item, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple).GetResultString() + ","; + } + } + orderValue = orderValue.TrimEnd(','); + OrderBy(orderValue); + return this; + } + else if ((expression as LambdaExpression).Body is NewExpression) { var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.ArraySingle : ResolveExpressType.ArrayMultiple); var items = lamResult.GetResultString().Split(',').Where(it => it.HasValue()).Select(it => it + UtilConstants.Space + type.ToString().ToUpper()).ToList(); diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index ff3180088..908c832a6 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -526,5 +526,14 @@ namespace SqlSugar var parameter2 = model.Args[1]; return string.Format(" ({0} <= {1}) ", parameter.MemberName, parameter2.MemberName); } + + public virtual string Asc(MethodCallExpressionModel model) + { + return model.Args[0].MemberName + " ASC "; + } + public virtual string Desc(MethodCallExpressionModel model) + { + return model.Args[0].MemberName + " DESC "; + } } } diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs index b64a57828..9c96a9b1d 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs @@ -80,6 +80,8 @@ namespace SqlSugar string GreaterThan(MethodCallExpressionModel model); string GreaterThanOrEqual(MethodCallExpressionModel model); string LessThan(MethodCallExpressionModel model); - string LessThanOrEqual(MethodCallExpressionModel model); + string LessThanOrEqual(MethodCallExpressionModel model); + string Asc(MethodCallExpressionModel model); + string Desc(MethodCallExpressionModel model); } } diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs index 90214ed85..23f80679f 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs @@ -9,7 +9,14 @@ namespace SqlSugar { public partial class SqlFunc { - + public static T Desc(T value) + { + throw new NotSupportedException("Can only be used in expressions"); + } + public static T Asc(T value) + { + throw new NotSupportedException("Can only be used in expressions"); + } public static int DateDiff(DateType dateType,DateTime littleTime, DateTime bigTime) { throw new NotSupportedException("Can only be used in expressions"); diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 1b623c10a..52763c958 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -910,6 +910,10 @@ namespace SqlSugar return this.Context.DbMehtods.LessThan(model); case "LessThanOrEqual": return this.Context.DbMehtods.LessThanOrEqual(model); + case "Asc": + return this.Context.DbMehtods.Asc(model); + case "Desc": + return this.Context.DbMehtods.Desc(model); default: break; } diff --git a/Src/Asp.NetCore2/SqlSugar/SqlSugar.csproj b/Src/Asp.NetCore2/SqlSugar/SqlSugar.csproj index 6436d7e5d..f96fca11f 100644 --- a/Src/Asp.NetCore2/SqlSugar/SqlSugar.csproj +++ b/Src/Asp.NetCore2/SqlSugar/SqlSugar.csproj @@ -2,7 +2,7 @@ netstandard2.1 - 5.0.6.5 + 5.0.6.6 sun_kai_xuan https://github.com/sunkaixuan/SqlSugar diff --git a/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs b/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs index 177ac9be4..74761e7db 100644 --- a/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs @@ -637,7 +637,8 @@ namespace SqlSugar public SqlSugarProvider GetConnectionWithAttr() { var attr = typeof(T).GetCustomAttribute(); - Check.ExceptionEasy(attr==null,"not TenantAttribute", "不存在特性 TenantAttribute"); + if (attr == null) + return this.GetConnection(this.CurrentConnectionConfig.ConfigId); var configId = attr.configId; return this.GetConnection(configId); } diff --git a/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec b/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec index ff0bcc28e..f0780d8bd 100644 --- a/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec +++ b/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec @@ -2,7 +2,7 @@ SqlSugarCore - 5.0.6.5 + 5.0.6.6 sunkaixuan 果糖大数据科技 http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/Src/Asp.NetCore2/SqlSugar/SqlSugarForCoreNoDrive.nuspec b/Src/Asp.NetCore2/SqlSugar/SqlSugarForCoreNoDrive.nuspec index ee26a20dd..4705f95b9 100644 --- a/Src/Asp.NetCore2/SqlSugar/SqlSugarForCoreNoDrive.nuspec +++ b/Src/Asp.NetCore2/SqlSugar/SqlSugarForCoreNoDrive.nuspec @@ -2,7 +2,7 @@ SqlSugarCoreNoDrive - 5.0.6.5 + 5.0.6.6 sunkaixuan Landa http://www.apache.org/licenses/LICENSE-2.0.html