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) || 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"); } db.CodeFirst.InitTables(); var id=db.Insertable(new OrderMain11() { Name = "a" }).ExecuteReturnIdentity(); db.Insertable(new OrderAarray11() { fk=id, Json = new List { "1"} }).ExecuteCommand(); var list31 = db.Queryable().ToList(); var list3=db.Queryable().LeftJoin((t1, ti2) => t1.Id == ti2.fk) .Select((t1, ti2) => new { t1.Id, t1.Name,json= ti2.Json }).ToList(); } public class OrderMain11 { [SugarColumn(IsPrimaryKey = true,IsIdentity =true)] public int Id { get; set; } public string Name { get; set; } } public class OrderAarray11 { [SugarColumn(IsPrimaryKey =true, IsIdentity = true)] public int Id { get; set; } public int fk { get; set; } [SugarColumn(IsJson =true)] public List Json { get; set; } } 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; } } } }