Example #1
0
        /**
         * Updates enMasse without first loading the entites into memory.
         *
         * ```cs
         *  Models.Foo.UpdateAll(e => e.Bar == "abc" && e.Baz == 123);
         * ```
         *
         * > NOTE: This is NOT a "WHERE" predicate. The expression you provide
         * > this Update method follows the same structure as a predicate but
         * > we parse it slightly diffrently. Consider each "&&" or "||" as a
         * > comma. And each "==" simply as a "=" operator.
         */
        public void UpdateAll(Expression <Func <TModel, bool> > assignments)
        {
            var converter = new AssignmentsConverter();

            converter.Visit(assignments.Body);
            this.UpdateAll(converter.Sql, converter.Parameters);
        }
Example #2
0
        public void MethodVarTest(int value)
        {
            Expression <Func <GracefulTestModel, bool> > expression =
                e => e.Bar == value;

            var converter = new AssignmentsConverter();

            converter.Visit(expression.Body);

            Assert.Equal("[Bar] = {0}", converter.Sql);
            Assert.Equal(new object[] { 123 }, converter.Parameters);
        }
Example #3
0
        public void BasicTest()
        {
            Expression <Func <GracefulTestModel, bool> > expression =
                e => e.Foo == "Hello";

            var converter = new AssignmentsConverter();

            converter.Visit(expression.Body);

            Assert.Equal("[Foo] = {0}", converter.Sql);
            Assert.Equal(new object[] { "Hello" }, converter.Parameters);
        }
Example #4
0
        public void OrTest()
        {
            Expression <Func <GracefulTestModel, bool> > expression =
                e => e.Foo == "Hello" || e.Bar == 123;

            var converter = new AssignmentsConverter();

            converter.Visit(expression.Body);

            Assert.Equal("[Foo] = {0}, [Bar] = {1}", converter.Sql);
            Assert.Equal(new object[] { "Hello", 123 }, converter.Parameters);
        }
Example #5
0
        private void MethodVarObjectTestPrvate(Models.CustomContext entity)
        {
            Expression <Func <Models.CustomContext, bool> > expression =
                e => e.Foo == entity.Foo;

            var converter = new AssignmentsConverter();

            converter.Visit(expression.Body);

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