diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs index 7bd0105c9..25530b02b 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs @@ -45,8 +45,11 @@ namespace OrmTest var getDicionary = db.Queryable().ToDictionary(it => it.Id, it => it.Name); var getDicionaryList = db.Queryable().ToDictionaryList(); var getTest = db.Queryable().Where(it =>string.IsNullOrWhiteSpace( it.Name)).ToList(); - - + var test01 = db.Queryable().PartitionBy(it => it.Id).ToList(); + var q1 = db.Queryable().Take(1); + var q2 = db.Queryable().Take(2); + var test02 = db.Union(q1, q2).ToList(); + var test03 = db.Queryable().Take(1).ToList(); Console.WriteLine("#### Examples End ####"); } diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index cb429cb2f..3e9480408 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -622,6 +622,7 @@ namespace SqlSugar if (QueryBuilder.Take == null) QueryBuilder.Take = 1; _PartitionBy(expression); + QueryBuilder.DisableTop = true; return this; } public virtual ISugarQueryable PartitionBy(string groupFileds) diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index f97f197d0..9447c15ca 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -40,6 +40,7 @@ namespace SqlSugar public int ExternalPageIndex { get; set; } public int ExternalPageSize { get; set; } public int? Take { get; set; } + public bool DisableTop { get; set; } public string OrderByValue { get; set; } public object SelectValue { get; set; } public string SelectCacheKey { get; set; } diff --git a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs index 57af42017..806221bbd 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs @@ -544,6 +544,7 @@ namespace SqlSugar List>> allItems = new List>>(); foreach (var item in queryables) { + item.QueryBuilder.DisableTop = true; var sqlObj = item.ToSql(); string sql = sqlObj.Key; UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "Union"); diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs index 141d374bb..ca7da927c 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs @@ -28,7 +28,7 @@ namespace SqlSugar { this.OrderByValue = this.PartitionByValue + this.OrderByValue; } - var isFirst = (Skip == 0 || Skip == null) && Take == 1; + var isFirst = (Skip == 0 || Skip == null) && Take == 1&&DisableTop==false; var isRowNumber = (Skip != null || Take != null) && !isFirst; var rowNumberString = string.Format(",ROW_NUMBER() OVER({0}) AS RowIndex ", GetOrderByString); string groupByValue = GetGroupByString + HavingInfos;