mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	FieldAliasOptions 新增空的别名,解决CountDistinct 问题
This commit is contained in:
		@@ -2055,6 +2055,11 @@
 | 
				
			|||||||
            使用属性名作为字段别名
 | 
					            使用属性名作为字段别名
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="F:FreeSql.FieldAliasOptions.AsEmpty">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            没有别名
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.ISelect0`2.Cancel(System.Func{System.Boolean})">
 | 
					        <member name="M:FreeSql.ISelect0`2.Cancel(System.Func{System.Boolean})">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            控制取消本次查询<para></para>
 | 
					            控制取消本次查询<para></para>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,11 @@ namespace FreeSql
 | 
				
			|||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 使用属性名作为字段别名
 | 
					        /// 使用属性名作为字段别名
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        AsProperty
 | 
					        AsProperty,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// 没有字段别名
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        AsEmpty,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -443,7 +443,8 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            var map = new ReadAnonymousTypeInfo();
 | 
					            var map = new ReadAnonymousTypeInfo();
 | 
				
			||||||
            var field = new StringBuilder();
 | 
					            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);
 | 
					            _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);
 | 
					            return new ReadAnonymousTypeAfInfo(map, field.Length > 0 ? field.Remove(0, 2).ToString() : null);
 | 
				
			||||||
@@ -1362,7 +1363,7 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                var countField = "1";
 | 
					                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<int>($"count({countField}){_commonUtils.FieldAsAlias("as1")}").Sum(); //这里的 Sum 为了分表查询
 | 
					                return this.ToList<int>($"count({countField}){_commonUtils.FieldAsAlias("as1")}").Sum(); //这里的 Sum 为了分表查询
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            finally
 | 
					            finally
 | 
				
			||||||
@@ -1425,7 +1426,7 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                var countField = "1";
 | 
					                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<int>($"count({countField}){_commonUtils.FieldAsAlias("as1")}", cancellationToken)).Sum(); //这里的 Sum 为了分表查询
 | 
					                return (await this.ToListAsync<int>($"count({countField}){_commonUtils.FieldAsAlias("as1")}", cancellationToken)).Sum(); //这里的 Sum 为了分表查询
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            finally
 | 
					            finally
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user