diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 02eb0609..27909b2e 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -512,5 +512,14 @@
+
+
+ 批量注入 Repository,可以参考代码自行调整
+
+
+
+
+
+
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest5.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest5.cs
index c2436f29..917dc93f 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest5.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest5.cs
@@ -14,6 +14,18 @@ namespace FreeSql.Tests
{
public class UnitTest5
{
+ [Fact]
+ public void TestDistinctCount()
+ {
+ var fsql = g.sqlite;
+
+ var sql = fsql.Select().ToSql(a => SqlExt.DistinctCount(a.status));
+ fsql.Select().Aggregate(a => SqlExt.DistinctCount(a.Key.status), out var count);
+
+ Assert.Equal(@"SELECT count(distinct a.""status"") as1
+FROM ""ts_up_dywhere01"" a", sql);
+ }
+
[Fact]
public void TestUpdateDyWhere()
{
diff --git a/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs
index 69ac375f..1d14724f 100644
--- a/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs
+++ b/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs
@@ -117,6 +117,18 @@ namespace FreeSql
return default(TValue);
}
+ ///
+ /// count(distinct name)
+ ///
+ ///
+ ///
+ ///
+ public static long DistinctCount(T column)
+ {
+ expContext.Value.Result = $"count(distinct {expContext.Value.ParsedContent["column"]})";
+ return 0;
+ }
+
#region 大小判断
///
/// 大于 >
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 6a7e15e8..0f9eda96 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -1188,6 +1188,14 @@
+
+
+ count(distinct name)
+
+
+
+
+
大于 >