Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
        }