using SqlSugar; using SqlSugarCoreDemo.Demo; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OrmTest { internal class UnitaadfafxSubToList { /// /// 初始化方法,包含各种查询操作的演示 /// Initialization method containing demonstrations of various query operations /// public static void Init() { //创建表并插入一条记录 //Create table and insert a record CreateTable(); //参数化测试 QuerySubTest(); //// 查询所有学生信息 //// Query all student records //GetAllStudents(); //// 查询学生总数 //// Get the total count of students //GetStudentCount(); //// 按条件查询学生信息 //// Query student records based on conditions //GetStudentsByCondition(); //// 模糊查询学生信息(名字包含"jack"的学生) //// Fuzzy search for student records (students with names containing "jack") //GetStudentsByName("jack"); //// 根据学生ID查询单个学生 //// Query a single student by student ID //GetStudentById(1); //// 获取Student03表中的最大Id //// Get the maximum ID from the Student03 table //GetMaxStudentId(); //// 简单排序(按照Id降序排序) //// Simple sorting (sorting by Id in descending order) //GetStudentsOrderedByIdDesc(); //// 查询学生姓名列表 //// Query the list of student names //GetStudentNames(); } /// /// 创建表并插入一条记录 /// Create table and insert a record /// private static void CreateTable() { SqlSugarClient db = NewUnitTest.Db; db.CodeFirst.InitTables(); db.DbMaintenance.TruncateTable(); var r = Enumerable.Range(1, 10000); var stList = new List(); for (int i = 0; i < 10000; i++) { var tempStu = new Student03() { Name = "name" + SnowFlakeSingle.Instance.NextId(), Id = i, CreateTime = DateTime.Now, }; stList.Add(tempStu); } db.Insertable(stList).ExecuteCommand(); } /// /// 子查询测试 /// Query all student records /// private static void QuerySubTest() { SqlSugarClient db = NewUnitTest.Db; var r = db.Queryable().Take(3).Where(x => x.Id > 4000).Select(x => new { r = SqlFunc.Subqueryable().OrderBy(x => x.Name).First(x => new Student03 { CreateTime= x.CreateTime }, true), }).ToList(); } /// /// 参数化测试 /// Query all student records /// private static void MyArrayParmeterTest() { SqlSugarClient db = DbHelper.GetNewDb(); var na = "1"; var idList = Enumerable.Range(0, 10000).ToList(); var students = db.Queryable().Where(x => DemoSqlFunction.MyContainsArrayUseSqlParameters(idList, x.Id) && x.Name.StartsWith(na)).ToList(); // 处理查询结果 // Process the query results } /// /// 查询所有学生信息 /// Query all student records /// private static void GetAllStudents() { SqlSugarClient db = DbHelper.GetNewDb(); var students = db.Queryable().ToList(); // 处理查询结果 // Process the query results } /// /// 查询学生总数 /// Get the total count of students /// private static void GetStudentCount() { SqlSugarClient db = DbHelper.GetNewDb(); var count = db.Queryable().Count(); // 处理查询结果 // Process the query results } /// /// 按条件查询学生信息 /// Query student records based on conditions /// private static void GetStudentsByCondition() { SqlSugarClient db = DbHelper.GetNewDb(); // 查询name字段不为null的学生 // Query students where the 'name' field is not null var studentsWithNameNotNull = db.Queryable().Where(it => it.Name != null).ToList(); // 查询name字段为null的学生 // Query students where the 'name' field is null var studentsWithNameNull = db.Queryable().Where(it => it.Name == null).ToList(); // 查询name字段不为空的学生 // Query students where the 'name' field is not empty var studentsWithNameNotEmpty = db.Queryable().Where(it => it.Name != "").ToList(); // 多条件查询 // Query students with multiple conditions var studentsWithMultipleConditions = db.Queryable().Where(it => it.Id > 10 && it.Name == "a").ToList(); // 动态OR查询 // Dynamic OR query var exp = Expressionable.Create(); exp.OrIF(true, it => it.Id == 1); exp.Or(it => it.Name.Contains("jack")); var studentsWithDynamicOr = db.Queryable().Where(exp.ToExpression()).ToList(); } /// /// 模糊查询学生信息 /// Fuzzy search for student records /// private static void GetStudentsByName(string keyword) { SqlSugarClient db = DbHelper.GetNewDb(); var students = db.Queryable().Where(it => it.Name.Contains(keyword)).ToList(); // 处理查询结果 // Process the query results } /// /// 根据学生ID查询单个学生 /// Query a single student by student ID /// private static void GetStudentById(int id) { SqlSugarClient db = DbHelper.GetNewDb(); var student = db.Queryable().Single(it => it.Id == id); // 处理查询结果 // Process the query results } /// /// 获取Student03表中的最大Id /// Get the maximum ID from the Student03 table /// private static void GetMaxStudentId() { SqlSugarClient db = DbHelper.GetNewDb(); var maxId = db.Queryable().Max(it => it.Id); // 处理查询结果 // Process the query results } /// /// 简单排序(按照Id降序排序) /// Simple sorting (sorting by Id in descending order) /// private static void GetStudentsOrderedByIdDesc() { SqlSugarClient db = DbHelper.GetNewDb(); var students = db.Queryable().OrderBy(sc => sc.Id, OrderByType.Desc).ToList(); // 处理查询结果 // Process the query results } /// /// 查询学生姓名列表 /// Query the list of student names /// private static void GetStudentNames() { SqlSugarClient db = DbHelper.GetNewDb(); var studentNames = db.Queryable().Select(it => it.Name).ToList(); // 处理查询结果 // Process the query results } public class Student03 { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public string Name { get; set; } public DateTime CreateTime { get; set; } } } }