diff --git a/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 1304a2cf6..c8225fef1 100644 --- a/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -184,12 +184,14 @@ namespace SqlSugar public ISugarQueryable OrderBy(Expression> expression, OrderByType type = OrderByType.Asc) { - throw new NotImplementedException(); + this._OrderBy(expression, type); + return this; } public ISugarQueryable OrderBy(Expression> expression, OrderByType type = OrderByType.Asc) { - throw new NotImplementedException(); + this._OrderBy(expression, type); + return this; } public ISugarQueryable GroupBy(Expression> expression) @@ -347,6 +349,7 @@ namespace SqlSugar public List ToList() { + this.Pars.AddRange(SqlBuilder.LambadaQueryBuilder.QueryPars); var sqlObj =this.ToSql(); var isComplexModel = Regex.IsMatch(sqlObj.Key, @"AS \[\w+\.\w+\]"); using (var dataReader = this.Db.GetDataReader(sqlObj.Key, sqlObj.Value.ToArray())) @@ -373,7 +376,7 @@ namespace SqlSugar throw new NotImplementedException(); } - public string ToJsonPage(int pageIndex, int pageSize, ref int pageCount) + public string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber) { throw new NotImplementedException(); } @@ -394,7 +397,7 @@ namespace SqlSugar throw new NotImplementedException(); } - public DataTable ToDataTablePage(int pageIndex, int pageSize, ref int pageCount) + public DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber) { throw new NotImplementedException(); } @@ -404,7 +407,7 @@ namespace SqlSugar throw new NotImplementedException(); } - public List ToPageList(int pageIndex, int pageSize, ref int pageCount) + public List ToPageList(int pageIndex, int pageSize, ref int totalNumber) { throw new NotImplementedException(); } @@ -412,19 +415,16 @@ namespace SqlSugar #region 私有方法 protected void _Where(Expression expression) { - ResolveExpressType type = ResolveExpressType.WhereSingle; - if (SqlBuilder.LambadaQueryBuilder.JoinQueryInfos.IsValuable()) - { - type = ResolveExpressType.WhereMultiple; - } - ILambdaExpressions resolveExpress = this.SqlBuilder.LambadaQueryBuilder.LambdaExpressions; - resolveExpress.IgnoreComumnList = this.Context.IgnoreComumns; - resolveExpress.MappingColumns = this.Context.MappingColumns; - resolveExpress.MappingColumns = this.Context.MappingColumns; - resolveExpress.Resolve(expression, type); - BasePars.AddRange(resolveExpress.Parameters); - SqlBuilder.LambadaQueryBuilder.WhereInfos.Add(SqlBuilder.AppendWhereOrAnd(SqlBuilder.LambadaQueryBuilder.WhereInfos.IsNullOrEmpty(), resolveExpress.Result.GetResultString())); - resolveExpress.Clear(); + var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle(); + var result=SqlBuilder.LambadaQueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple); + SqlBuilder.LambadaQueryBuilder.WhereInfos.Add(SqlBuilder.AppendWhereOrAnd(SqlBuilder.LambadaQueryBuilder.WhereInfos.IsNullOrEmpty(),result.GetResultString())); + } + protected ISugarQueryable _OrderBy(Expression expression, OrderByType type = OrderByType.Asc) + { + var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle(); + var orderByValue = SqlBuilder.LambadaQueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple); + OrderBy(orderByValue + " " + type.ToString().ToUpper()); + return this; } #endregion } diff --git a/SqlSugar/Interface/IQueryable.cs b/SqlSugar/Interface/IQueryable.cs index 2a8876b17..690939da4 100644 --- a/SqlSugar/Interface/IQueryable.cs +++ b/SqlSugar/Interface/IQueryable.cs @@ -82,17 +82,17 @@ namespace SqlSugar string ToJson(); string ToJsonPage(int pageIndex, int pageSize); - string ToJsonPage(int pageIndex, int pageSize, ref int pageCount); + string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber); KeyValuePair> ToSql(); DataTable ToDataTable(); DataTable ToDataTablePage(int pageIndex, int pageSize); - DataTable ToDataTablePage(int pageIndex, int pageSize, ref int pageCount); + DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber); List ToPageList(int pageIndex, int pageSize); - List ToPageList(int pageIndex, int pageSize, ref int pageCount); + List ToPageList(int pageIndex, int pageSize, ref int totalNumber); void Clear();