Esempio n. 1
0
        /**
         * Filters the set based on the expression, using sql LIKE clauses.
         * This does not return results but a new filtered Linq<TModel>.
         *
         * ```cs
         *  var filteredEntities = Models.Foo.Like(e => e.Bar == "%abc%");
         * ```
         *
         * > NOTE: You may use ```!=``` for a NOT LIKE query.
         */
        public Linq <TModel> Like(Expression <Func <TModel, bool> > predicate)
        {
            var converter = new LikeConverter();

            converter.Visit(predicate.Body);
            return(this.Where(converter.Sql, converter.Parameters));
        }
Esempio n. 2
0
        public void OrTest()
        {
            Expression <Func <GracefulTestModel, bool> > expression =
                e => e.Foo == "Hello" || e.Bar == 123;

            var converter = new LikeConverter();

            converter.Visit(expression.Body);

            Assert.Equal("(([Foo] LIKE {0}) OR ([Bar] LIKE {1}) )", converter.Sql);
            Assert.Equal(new object[] { "Hello", 123 }, converter.Parameters);
        }
Esempio n. 3
0
        public void MethodVarTest(int value)
        {
            Expression <Func <GracefulTestModel, bool> > expression =
                e => e.Bar == value;

            var converter = new LikeConverter();

            converter.Visit(expression.Body);

            Assert.Equal("([Bar] LIKE {0})", converter.Sql);
            Assert.Equal(new object[] { 123 }, converter.Parameters);
        }
Esempio n. 4
0
        public void NotTest()
        {
            Expression <Func <GracefulTestModel, bool> > expression =
                e => e.Foo != "Hello";

            var converter = new LikeConverter();

            converter.Visit(expression.Body);

            Assert.Equal("([Foo] NOT LIKE {0})", converter.Sql);
            Assert.Equal(new object[] { "Hello" }, converter.Parameters);
        }
Esempio n. 5
0
        private void MethodVarObjectTestPrvate(Models.CustomContext entity)
        {
            Expression <Func <Models.CustomContext, bool> > expression =
                e => e.Foo == entity.Foo;

            var converter = new LikeConverter();

            converter.Visit(expression.Body);

            Assert.Equal("([Foo] LIKE {0})", converter.Sql);
            Assert.Equal(new object[] { "Bar" }, converter.Parameters);
        }