Skip to content

Commit 8af2ace

Browse files
authored
Merge pull request #1839 from Wolffy101/master
FieldAliasOptions 新增空的别名,解决CountDistinct 问题
2 parents f1fd003 + 2290606 commit 8af2ace

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

FreeSql/FreeSql.xml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@ public enum FieldAliasOptions
1313
/// </summary>
1414
AsIndex,
1515

16-
16+
1717
/// <summary>
1818
/// 使用属性名作为字段别名
1919
/// </summary>
20-
AsProperty
20+
AsProperty,
21+
22+
/// <summary>
23+
/// 没有字段别名
24+
/// </summary>
25+
AsEmpty,
2126
}
2227
}

FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,8 @@ public ReadAnonymousTypeAfInfo GetExpressionField(Expression newexp, FieldAliasO
443443
{
444444
var map = new ReadAnonymousTypeInfo();
445445
var field = new StringBuilder();
446-
var index = fieldAlias == FieldAliasOptions.AsProperty ? CommonExpression.ReadAnonymousFieldAsCsName : 0;
446+
var index = fieldAlias == FieldAliasOptions.AsProperty ? CommonExpression.ReadAnonymousFieldAsCsName :
447+
(fieldAlias == FieldAliasOptions.AsEmpty ? CommonExpression.ReadAnonymousFieldAsCsNameGroupBy : 0);
447448

448449
_commonExpression.ReadAnonymousField(_tables, _tableRule, field, map, ref index, newexp, this, _diymemexpWithTempQuery, _whereGlobalFilter, null, null, true);
449450
return new ReadAnonymousTypeAfInfo(map, field.Length > 0 ? field.Remove(0, 2).ToString() : null);
@@ -1362,7 +1363,7 @@ public long Count()
13621363
try
13631364
{
13641365
var countField = "1";
1365-
if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsProperty).field}";
1366+
if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsEmpty).field}";
13661367
return this.ToList<int>($"count({countField}){_commonUtils.FieldAsAlias("as1")}").Sum(); //这里的 Sum 为了分表查询
13671368
}
13681369
finally
@@ -1425,7 +1426,7 @@ async public Task<long> CountAsync(CancellationToken cancellationToken = default
14251426
try
14261427
{
14271428
var countField = "1";
1428-
if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsProperty).field}";
1429+
if (tmpDistinct && _selectExpression != null) countField = $"distinct {this.GetExpressionField(_selectExpression, FieldAliasOptions.AsEmpty).field}";
14291430
return (await this.ToListAsync<int>($"count({countField}){_commonUtils.FieldAsAlias("as1")}", cancellationToken)).Sum(); //这里的 Sum 为了分表查询
14301431
}
14311432
finally

0 commit comments

Comments
 (0)