using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OrmTest { public partial class NewUnitTest { public static void Json() { Db.CodeFirst.InitTables(); Db.DbMaintenance.TruncateTable(); Db.Insertable(new UnitJsonTest() { Order = new Order { Id = 1, Name = "order1" } }).ExecuteCommand(); var list = Db.Queryable().ToList(); UValidate.Check("order1", list.First().Order.Name, "Json"); Db.Updateable(new UnitJsonTest() { Id = 1, Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand(); var json = Db.Queryable().Select(it => SqlFunc.JsonField(it.Order, "Name")).ToList(); list = Db.Queryable().ToList(); UValidate.Check("order2", list.First().Order.Name, "Json"); Db.Updateable().SetColumns(x => new UnitJsonTest { Order = new Order { Id = 2, Name = "order3" } }).Where(x => x.Id == 1).ExecuteCommand(); list = Db.Queryable().ToList(); UValidate.Check("order3", list.First().Order.Name, "Json"); var db = Db; var list2 = Db.Queryable().ToList(); db.CodeFirst.InitTables(); db.DbMaintenance.TruncateTable(); db.Insertable(new UnitJsonArray() { a = new int[] { 1, 2, 3 }, b = new string[] { "a", "b" } }).ExecuteCommand(); db.Insertable(new UnitJsonArray() { a = new int[] { 5 }, b = new string[] { "c", "d" } }).ExecuteCommand(); var isBool = db.Queryable().Any(it => SqlFunc.JsonArrayAny(it.a, 1)); var isBool2 = db.Queryable().Any(it => SqlFunc.JsonArrayAny(it.a, 4)); var isBool1 = db.Queryable().Any(it => SqlFunc.JsonArrayAny(it.b, "a")); var isBool22 = db.Queryable().Any(it => SqlFunc.JsonArrayAny(it.b, "e")); if (isBool == false || isBool2 == true || isBool1 == false || isBool22 == true) { throw new Exception("unit test"); } db.CodeFirst.InitTables(); db.Insertable(new UnitJsonTest2222() { A = new List() { new Order() { Id = 1, Name = "a" } }.ToList() }).ExecuteCommand(); var isAny = db.Queryable().Any(it => SqlFunc.JsonListObjectAny(it.A, "Name", "a")); var isAny2 = db.Queryable().Any(it => SqlFunc.JsonListObjectAny(it.A, "Name", "b")); var isAny21 = db.Queryable().Any(it => SqlFunc.JsonListObjectAny(it.A, "Id", 1)); var isAny22 = db.Queryable().Any(it => SqlFunc.JsonListObjectAny(it.A, "Id", 2)); if (isAny == false || isAny21 == false || isAny2 == true || isAny22 == true) { throw new Exception("unit test"); } } public class UnitJsonArray { [SqlSugar.SugarColumn(IsJson = true)] public int[] a { get; set; } [SqlSugar.SugarColumn(IsJson = true)] public string[] b { get; set; } } public class UnitJsonTest2222 { [SqlSugar.SugarColumn(IsJson = true)] public List A { get; set; } } public class UnitJsonTest { [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } [SqlSugar.SugarColumn(ColumnDataType = "varchar(4000)", IsJson = true)] public Order Order { get; set; } } } }