From dd475a24739c12dc8bdb177b68f54b75dde57271 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 19 Dec 2023 17:07:10 +0800 Subject: [PATCH] Add user case test --- .../SqlSeverTest/UserTestCases/Program.cs | 2 +- .../UnitTest/UCustomConditionalFunc.cs | 82 +++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustomConditionalFunc.cs diff --git a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs index 88adb3dea..8999a4ec7 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs @@ -13,7 +13,7 @@ namespace SqlSeverTest.UserTestCases /// public static void Init() { - + UCustomConditionalFunc.Init(); //Demo Demo0_SqlSugarClient.Init(); Demo1_Queryable.Init(); diff --git a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustomConditionalFunc.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustomConditionalFunc.cs new file mode 100644 index 000000000..d8906dff2 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustomConditionalFunc.cs @@ -0,0 +1,82 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class UCustomConditionalFunc + { + public static void Init() + { + var conditionEmail = new ConditionalModel { FieldName = "Email", ConditionalType = ConditionalType.Like, FieldValue = "aaa" }; + var conditionUserType = new ConditionalModel { FieldName = "UserType", FieldValue = "1", CustomConditionalFunc = new UserTypeConditionalFunc() }; + + var db = NewUnitTest.Db; + Demo1(conditionEmail, conditionUserType, db); + Demo2(conditionEmail, conditionUserType, db); + Demo3(conditionEmail, conditionUserType, db); + } + + private static void Demo1(ConditionalModel conditionEmail, ConditionalModel conditionUserType, SqlSugarClient db) + { + var conditions = new List(); + conditions.Add(conditionEmail); + conditions.Add(new ConditionalCollections + { + ConditionalList = new List> + { + new KeyValuePair(WhereType.And, conditionUserType) // 这里key用[Or|Null]都没用 + } + }); + db.CodeFirst.InitTables(); + var query = db.Queryable().Where(conditions, true).ToList(); + } + private static void Demo2(ConditionalModel conditionEmail, ConditionalModel conditionUserType, SqlSugarClient db) + { + var conditions = new List(); + conditions.Add(conditionEmail); + conditions.Add(new ConditionalCollections + { + ConditionalList = new List> + { + new KeyValuePair(WhereType.Or, conditionUserType) // 这里key用[Or|Null]都没用 + } + }); + db.CodeFirst.InitTables(); + var query = db.Queryable().Where(conditions, true).ToList(); + } + private static void Demo3(ConditionalModel conditionEmail, ConditionalModel conditionUserType, SqlSugarClient db) + { + var conditions = new List(); + // conditions.Add(conditionEmail); + conditions.Add(new ConditionalCollections + { + ConditionalList = new List> + { + new KeyValuePair(WhereType.And, conditionUserType) // 这里key用[Or|Null]都没用 + } + }); + db.CodeFirst.InitTables(); + var query = db.Queryable().Where(conditions, true).ToList(); + } + } + [SugarTable("AppUseradfafa")] + public class AppUser + { + public int Id { get; set; } + public string Email { get; set; } + public int UserType { get; set; } + } + + public class UserTypeConditionalFunc : ICustomConditionalFunc + { + public KeyValuePair GetConditionalSql(ConditionalModel conditionalModel, int index) + { + var sql = $"UserType = {conditionalModel.FieldValue}"; + return new KeyValuePair(sql, Array.Empty()); + } + } +}