SqlSugar/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryWhere.cs

89 lines
3.3 KiB
C#
Raw Normal View History

2025-06-13 14:54:03 +08:00
using SqlSugar;
using SqlSugar.MongoDb;
2025-06-12 17:51:23 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MongoDbTest
{
public class QueryWhere
{
2025-06-12 18:33:49 +08:00
public static void Init()
2025-06-12 17:51:23 +08:00
{
2025-06-12 18:33:49 +08:00
//创建DB
var db = DBHelper.DbHelper.GetNewDb();
//初始化数据
InitializeStudentData(db);
//null类型测试
ValidateStudentData(db);
//函数
FilterStudentsByFunc(db);
//根据bool过滤
FilterStudentsByBool(db);
}
private static void FilterStudentsByBool(SqlSugar.SqlSugarClient db)
{
//bool类型测试
var list1 = db.Queryable<Student>().Where(it => it.Bool == true).ToList();
//var list2 = db.Queryable<Student>().Where(it => it.Bool).ToList();
//var list3 = db.Queryable<Student>().Where(it => !it.Bool).ToList();
}
private static void FilterStudentsByFunc(SqlSugar.SqlSugarClient db)
{
var list = db.Queryable<Student>().Where(it => it.Name.Contains("ck")).ToList();
if (!list.First().Name.Contains("ck")) Cases.ThrowUnitError();
2025-06-13 13:39:56 +08:00
var list2 = db.Queryable<Student>().Where(it => it.Name.StartsWith("ck")).ToList();
if (list2.Any()) Cases.ThrowUnitError();
var list3 = db.Queryable<Student>().Where(it => it.Name.StartsWith("ja")).ToList();
if (!list3.Any()) Cases.ThrowUnitError();
var list4 = db.Queryable<Student>().Where(it => it.Name.EndsWith("ck")).ToList();
if (!list4.Any()) Cases.ThrowUnitError();
2025-06-13 14:54:03 +08:00
var list5 = db.Queryable<Student>().Where(it =>it.CreateDateTime==DateTime.Now.Date).ToList();
var list6 = db.Queryable<Student>().Where(it => it.CreateDateTime == DateTime.Now.AddDays(1)).ToList();
2025-06-13 19:47:20 +08:00
var list7 = db.Queryable<Student>().Where(it => it.CreateDateTime.Date == DateTime.Now.AddDays(1)).ToList();
2025-06-12 18:33:49 +08:00
}
private static void ValidateStudentData(SqlSugar.SqlSugarClient db)
{
var list = db.Queryable<Student>().ToList();
2025-06-12 17:51:23 +08:00
if (list.First() is { } first && (first.BoolNull != null || first.SchoolIdNull != null)) Cases.ThrowUnitError();
if (list.Last() is { } last && (last.BoolNull != true || last.SchoolIdNull != 4)) Cases.ThrowUnitError();
}
2025-06-12 18:33:49 +08:00
private static void InitializeStudentData(SqlSugar.SqlSugarClient db)
{
db.CodeFirst.InitTables<Student>();
db.DbMaintenance.TruncateTable<Student>();
2025-06-13 14:54:03 +08:00
db.Insertable(new Student() { Name = "jack",CreateDateTime=DateTime.Now.AddDays(-10), Bool = true, SchoolId = 2 }).ExecuteCommand();
db.Insertable(new Student() { Name = "tom_null", CreateDateTime = DateTime.Now.AddDays(-110), Bool = false, BoolNull = true, SchoolId = 3, SchoolIdNull = 4 }).ExecuteCommand();
2025-06-12 18:33:49 +08:00
}
2025-06-12 17:51:23 +08:00
[SqlSugar.SugarTable("UnitStudent1ssss23s131")]
public class Student : MongoDbBase
{
public string Name { get; set; }
public bool Bool { get; set; }
public bool? BoolNull { get; set; }
public int SchoolId { get; set; }
public int? SchoolIdNull { get; set; }
2025-06-13 14:54:03 +08:00
public DateTime CreateDateTime { get; set; }
2025-06-12 17:51:23 +08:00
}
}
}