diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 3c17bd6b4..4e6d210bb 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -155,6 +155,8 @@ namespace OrmTest.Demo // group id,name take first var list3 = db.Queryable() .PartitionBy(it => new { it.Id, it.Name }).Take(1).ToList(); + var list31 = db.Queryable() + .PartitionBy(it => new { it.Id, it.Name }).Take(1).Count(); int count = 0; diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index 01cada44a..59d3dfc89 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -225,7 +225,7 @@ namespace SqlSugar { string oldOrderBy = this.OrderByValue; string externalOrderBy = oldOrderBy; - var isCount = this.IsCount; + var isCount = this.IsCount&&this.PartitionByValue.IsNullOrEmpty(); AppendFilter(); sql = new StringBuilder(); if (this.OrderByValue == null && (Skip != null || Take != null)) this.OrderByValue = " ORDER BY GetDate() "; @@ -239,7 +239,7 @@ namespace SqlSugar string orderByValue = (!isRowNumber && this.OrderByValue.IsValuable()) ? GetOrderByString : null; if (isCount) { orderByValue = null; } sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, groupByValue, orderByValue); - sql.Replace(UtilConstants.ReplaceKey, isRowNumber ? (this.IsCount ? null : rowNumberString) : null); + sql.Replace(UtilConstants.ReplaceKey, isRowNumber ? (isCount ? null : rowNumberString) : null); if (isCount) { this.OrderByValue = oldOrderBy; return sql.ToString(); } var result = ToPageSql(sql.ToString(), this.Take, this.Skip); if (ExternalPageIndex > 0) @@ -446,7 +446,7 @@ namespace SqlSugar get { if (this.OrderByValue == null) return null; - if (IsCount) return null; + if (IsCount&&this.PartitionByValue.IsNullOrEmpty()) return null; else { return this.OrderByValue;