From fe00dd807583439a37726507d17224cb508d6933 Mon Sep 17 00:00:00 2001 From: gaoyong101 Date: Thu, 27 Jun 2024 14:32:10 +0800 Subject: [PATCH] =?UTF-8?q?FieldAliasOptions=20=E6=96=B0=E5=A2=9E=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E5=88=AB=E5=90=8D,=E8=A7=A3=E5=86=B3CountDistinct=20?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql/FreeSql.xml | 5 +++++ FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs | 9 +++++++-- .../CommonProvider/SelectProvider/Select0Provider.cs | 7 ++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 5f6a3f2a..e3925df4 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -2055,6 +2055,11 @@ 使用属性名作为字段别名 + + + 没有别名 + + 控制取消本次查询 diff --git a/FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs b/FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs index 6c17997a..87972c15 100644 --- a/FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs +++ b/FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs @@ -13,10 +13,15 @@ namespace FreeSql /// AsIndex, - + /// /// 使用属性名作为字段别名 /// - AsProperty + AsProperty, + + /// + /// 没有字段别名 + /// + AsEmpty, } } diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index a922b279..853f7204 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -443,7 +443,8 @@ namespace FreeSql.Internal.CommonProvider { var map = new ReadAnonymousTypeInfo(); var field = new StringBuilder(); - var index = fieldAlias == FieldAliasOptions.AsProperty ? CommonExpression.ReadAnonymousFieldAsCsName : 0; + var index = fieldAlias == FieldAliasOptions.AsProperty ? CommonExpression.ReadAnonymousFieldAsCsName : + (fieldAlias == FieldAliasOptions.AsIndex ? 0 : CommonExpression.ReadAnonymousFieldAsCsNameGroupBy); _commonExpression.ReadAnonymousField(_tables, _tableRule, field, map, ref index, newexp, this, _diymemexpWithTempQuery, _whereGlobalFilter, null, null, true); return new ReadAnonymousTypeAfInfo(map, field.Length > 0 ? field.Remove(0, 2).ToString() : null); @@ -1362,7 +1363,7 @@ namespace FreeSql.Internal.CommonProvider try { var countField = "1"; - if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsProperty).field}"; + if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsEmpty).field}"; return this.ToList($"count({countField}){_commonUtils.FieldAsAlias("as1")}").Sum(); //这里的 Sum 为了分表查询 } finally @@ -1425,7 +1426,7 @@ namespace FreeSql.Internal.CommonProvider try { var countField = "1"; - if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsProperty).field}"; + if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsEmpty).field}"; return (await this.ToListAsync($"count({countField}){_commonUtils.FieldAsAlias("as1")}", cancellationToken)).Sum(); //这里的 Sum 为了分表查询 } finally