diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index f170c51e1..ea8c06048 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -264,6 +264,12 @@ namespace SqlSugar return string.Format("COUNT({0})", parameter.MemberName); } + public virtual string AggregateDistinctCount(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format("COUNT(DISTINCT{0})", parameter.MemberName); + } + public virtual string MappingColumn(MethodCallExpressionModel model) { var parameter = model.Args[0]; diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs index 8ede5cbab..5f4845c6f 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs @@ -48,6 +48,7 @@ namespace SqlSugar string AggregateMin(MethodCallExpressionModel model); string AggregateMax(MethodCallExpressionModel model); string AggregateCount(MethodCallExpressionModel model); + string AggregateDistinctCount(MethodCallExpressionModel model); string MappingColumn(MethodCallExpressionModel model); string IsNull(MethodCallExpressionModel model); string GetSelfAndAutoFill(string shortName,bool isSingle); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 360df84d6..8a851f7af 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -578,6 +578,8 @@ namespace SqlSugar return this.Context.DbMehtods.AggregateMax(model); case "AggregateCount": return this.Context.DbMehtods.AggregateCount(model); + case "AggregateDistinctCount": + return this.Context.DbMehtods.AggregateDistinctCount(model); case "MappingColumn": var mappingColumnResult = this.Context.DbMehtods.MappingColumn(model); var isValid = model.Args[0].IsMember && model.Args[1].IsMember == false;