diff --git a/Src/Asp.Net/SqlServerTest/6_NavigationProperty.cs b/Src/Asp.Net/SqlServerTest/6_NavigationProperty.cs index 4d4973782..6dec5075e 100644 --- a/Src/Asp.Net/SqlServerTest/6_NavigationProperty.cs +++ b/Src/Asp.Net/SqlServerTest/6_NavigationProperty.cs @@ -15,7 +15,7 @@ namespace OrmTest /// public static void Init() { - var db = NewUnitTest.Db; + var db = DbHelper.GetNewDb(); // Initialize database table structures. // 初始化数据库表结构。 diff --git a/Src/Asp.Net/SqlServerTest/7_GroupQuery.cs b/Src/Asp.Net/SqlServerTest/7_GroupQuery.cs new file mode 100644 index 000000000..6eabe8d54 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/7_GroupQuery.cs @@ -0,0 +1,74 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + internal class _7_GroupQuery + { + public static void Init() + { + var db = DbHelper.GetNewDb(); + List students = new List + { + new Student { Id = 1, Name = "Alice", Age = 20 }, + new Student { Id = 2, Name = "Bob", Age = 22 }, + new Student { Id = 3, Name = "Alice", Age = 21 }, + new Student { Id = 4, Name = "Charlie", Age = 19 }, + new Student { Id = 5, Name = "Bob", Age = 20 } + }; + + // 初始化数据库表结构,如果表不存在则创建 (Initialize database table structure; create if not exists) + db.CodeFirst.InitTables(); + + // 清空指定表中的所有数据 (Truncate all data in the specified table) + db.DbMaintenance.TruncateTable(); + + //插入记录(Insert datas) + db.Insertable(students).ExecuteCommand(); + + // 分组查询示例 (Grouping Query Example) + var groupedStudents = db.Queryable() + .GroupBy(s => s.Name) + .Select(g => new + { + Name = g.Name, // 学生姓名 (Student Name) + Count = SqlFunc.AggregateCount(g.Id), // 学生数量 (Count of Students) + AverageAge = SqlFunc.AggregateAvg(g.Age), // 平均年龄 (Average Age) + MaxAge = SqlFunc.AggregateMax(g.Age), // 最大年龄 (Maximum Age) + MinAge = SqlFunc.AggregateMin(g.Age) // 最小年龄 (Minimum Age) + }) + .ToList(); + + + // 去重查询示例 (Distinct Query Example) + var distinctNames = students.Select(s => s.Name).Distinct().ToList(); + + + // 分组取第一条记录示例 (Group First Record Example) + var groupFirstRecord = db.Queryable() + .Select(g => new + { + index = SqlFunc.RowNumber(SqlFunc.Desc(g.Id), g.Name), + Id = g.Id, + Name = g.Name, + Age =g.Age + }) + .MergeTable() + .Where(it => it.index == 1) + .ToList(); + } + + [SqlSugar.SugarTable("Student07")] + public class Student + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } // 学生ID (Student ID) + public string Name { get; set; } // 学生姓名 (Student Name) + public int Age { get; set; } // 学生年龄 (Student Age) + } + } +} diff --git a/Src/Asp.Net/SqlServerTest/Program.cs b/Src/Asp.Net/SqlServerTest/Program.cs index aca17545d..3906079ab 100644 --- a/Src/Asp.Net/SqlServerTest/Program.cs +++ b/Src/Asp.Net/SqlServerTest/Program.cs @@ -13,7 +13,8 @@ namespace OrmTest _3_EasyQuery.Init(); _4_JoinQuery.Init(); _5_PageQuery.Init(); - _6_NavQuery.Init(); + _6_NavQuery.Init(); + _7_GroupQuery.Init(); } } diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index e8c74d55f..b47951da0 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -70,6 +70,7 @@ +