diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UCustom03.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UCustom03.cs index 7f1da5318..4de32b618 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UCustom03.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UCustom03.cs @@ -10,6 +10,9 @@ namespace OrmTest { public static void Init() { + Demo8(); + Demo7(); + Demo6(); Demo5(); Demo4(); Demo3(); @@ -174,5 +177,136 @@ namespace OrmTest throw new Exception("unit error"); } } + + private static void Demo6() + { + var db = NewUnitTest.Db; + List conModels = new List(); + conModels.Add(new ConditionalTree() + { + ConditionalList = new List>()// (id=1 or id=2 and id=1) + { + //new KeyValuePair( WhereType.And ,new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" }), + new KeyValuePair (WhereType.Null,new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "2" }), + new KeyValuePair (WhereType.And,new ConditionalModel() { FieldName = "name", ConditionalType = ConditionalType.Equal, FieldValue = "2" }), + new KeyValuePair ( + WhereType.And, new ConditionalTree(){ + ConditionalList=new List>() + { + new KeyValuePair(WhereType.Null,new ConditionalModel(){ + FieldName="price", ConditionalType=ConditionalType.Equal, FieldValue="1" + }), + new KeyValuePair(WhereType.And,new ConditionalModel(){ + FieldName = "CustomId", ConditionalType = ConditionalType.Equal, FieldValue = "1" + }) + + } + }) + } + }); + var json = db.Context.Utilities.SerializeObject(conModels); + + var conditionalModels = db.Context.Utilities.JsonToConditionalModels(json); + var list6 = db.Queryable().Where(it=>it.Id==1).Where(conditionalModels).ToList(); + + var json2 = db.Context.Utilities.SerializeObject(conditionalModels); + + if (json != json2) + { + throw new Exception("unit error"); + } + } + + private static void Demo7() + { + var db = NewUnitTest.Db; + List conModels = new List(); + conModels.Add(new ConditionalTree() + { + ConditionalList = new List>()// (id=1 or id=2 and id=1) + { + //new KeyValuePair( WhereType.And ,new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" }), + new KeyValuePair (WhereType.Null,new ConditionalModel() { FieldName = "name", ConditionalType = ConditionalType.Equal, FieldValue = "name" }), + + new KeyValuePair ( WhereType.And, new ConditionalTree(){ + ConditionalList=new List>(){ + new KeyValuePair(WhereType.Null,new ConditionalModel(){ + FieldName="customid", ConditionalType=ConditionalType.Equal, FieldValue="1" + }), + new KeyValuePair(WhereType.Or,new ConditionalModel(){ + FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" + }), + new KeyValuePair(WhereType.Or,new ConditionalTree(){ + ConditionalList=new List>(){ + new KeyValuePair(WhereType.Null,new ConditionalModel(){ + FieldName="customid", ConditionalType=ConditionalType.Equal, FieldValue="1" + } + + ), + + } + }) + + + } + }), + new KeyValuePair (WhereType.And,new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "2" }), + } + }); + var json = db.Context.Utilities.SerializeObject(conModels); + var conditionalModels = db.Context.Utilities.JsonToConditionalModels(json); + var list6 = db.Queryable().Where(conditionalModels).ToList(); + var json2 = db.Context.Utilities.SerializeObject(conditionalModels); + if (json != json2) + { + throw new Exception("unit error"); + } + } + + private static void Demo8() + { + var db = NewUnitTest.Db; + List conModels = new List(); + conModels.Add(new ConditionalTree() + { + ConditionalList = new List>()// (id=1 or id=2 and id=1) + { + //new KeyValuePair( WhereType.And ,new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" }), + new KeyValuePair (WhereType.Null,new ConditionalModel() { FieldName = "name", ConditionalType = ConditionalType.Equal, FieldValue = "name" }), + + new KeyValuePair ( WhereType.And, new ConditionalTree(){ + ConditionalList=new List>(){ + new KeyValuePair(WhereType.Null,new ConditionalModel(){ + FieldName="customid", ConditionalType=ConditionalType.Equal, FieldValue="1" + }), + new KeyValuePair(WhereType.And,new ConditionalModel(){ + FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" + }), + new KeyValuePair(WhereType.Or,new ConditionalTree(){ + ConditionalList=new List>(){ + new KeyValuePair(WhereType.Null,new ConditionalModel(){ + FieldName="customid", ConditionalType=ConditionalType.Equal, FieldValue="1" + } + + ), + + } + }) + + + } + }), + new KeyValuePair (WhereType.Or,new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "2" }), + } + }); + var json = db.Context.Utilities.SerializeObject(conModels); + var conditionalModels = db.Context.Utilities.JsonToConditionalModels(json); + var list6 = db.Queryable().Where(conditionalModels).ToList(); + var json2 = db.Context.Utilities.SerializeObject(conditionalModels); + if (json != json2) + { + throw new Exception("unit error"); + } + } } }