/// <summary> /// Initializes a new instance of the <see cref="DbQuery"/> class. /// </summary> /// <param name="gateway">The gateway.</param> /// <param name="filterExpressions">The filter expressions.</param> private DbQuery(DbGateway gateway, List <DbFilterNode> filterExpressions) { foreach (DbFilterExpression expression in filterExpressions) { if (!Utils.DbValidator.IsValidColumnName(expression.ColumnName)) { throw new NdbInvalidColumnNameException(expression.ColumnName); } } Gateway = gateway; FilterGroup = new DbAndFilterGroup(filterExpressions); }
public void LoadListFilterExpressionTreeTest() { User user = TestData.TestUser; user.Email = "*****@*****.**"; gateway.Insert(user); user.Email = "*****@*****.**"; gateway.Insert(user); var expression = new DbColumnFilterExpression( DbExpressionType.Equal, "Email", TestData.TestUser.Email); var expression2 = new DbColumnFilterExpression( DbExpressionType.Equal, "Email", "*****@*****.**"); DbFilterGroup or = new DbOrFilterGroup(expression, expression2); User[] list = gateway.Select(or).Load <User>(); Assert.AreEqual(2, list.Length); expression.Value = "*****@*****.**"; list = gateway.Select(or).Load <User>(); Assert.AreEqual(1, list.Length); //and expression = new DbColumnFilterExpression( DbExpressionType.Equal, "Email", TestData.TestUser.Email); expression2 = new DbColumnFilterExpression( DbExpressionType.Equal, "Email", "*****@*****.**"); or = new DbAndFilterGroup(expression, expression2); list = gateway.Select(or).Load <User>(); Assert.AreEqual(0, list.Length); }