void Test2() { Users user = new Users(); UserRoles roles = new UserRoles() { RoleName = "role1" }; OQL q2 = new OQL(user); q2.InnerJoin(roles).On(user.RoleID, roles.ID); OQLCompare cmp = new OQLCompare(q2); OQLCompare cmpResult = ( cmp.Property(user.UserName) == "ABC" & cmp.Comparer(user.Password, "=", "111") & cmp.EqualValue(roles.RoleName) ) | ( (cmp.Comparer(user.UserName, "=", "CDE") & cmp.Property(user.Password) == "222" & cmp.Comparer(roles.RoleName, "like", "%Role2") ) | (cmp.Property(user.LastLoginTime) > DateTime.Now.AddDays(-1)) ) ; q2.Select().Where(cmpResult); Console.WriteLine("OQL by OQLCompare Test:\r\n{0}", q2); Console.WriteLine(q2.PrintParameterInfo()); }
OQLCompare CreateCondition(OQLCompare cmp, Users user) { OQLCompare cmpResult = null; if (user.NickName != "") { //cmpResult = cmp.Property(user.AddTime) > new DateTime(2013, 2, 1); // cmpResult = cmp.EqualValue(user.NickName);//下面一行建议用当前行的写法 cmpResult = cmp.Comparer(user.NickName, "=", user.NickName); } if (user.ID > 0) { cmpResult = cmpResult & cmp.Property(user.UserName) == "ABC" & cmp.Comparer(user.Password, "=", "111"); } return(cmpResult); }