Ejemplo n.º 1
0
        public static Sql Where <T>(this Sql sql, Expression <Func <T, bool> > predicate)
        {
            var    expresionist    = new PocoToSqlExpressionHelper <T>();
            string whereExpression = expresionist.Visit(predicate);

            return(sql.Where(whereExpression));
        }
Ejemplo n.º 2
0
        public static Sql Where <T>(this Sql sql, Expression <Func <T, bool> > predicate)
        {
            var expresionist    = new PocoToSqlExpressionHelper <T>();
            var whereExpression = expresionist.Visit(predicate);

            return(sql.Where(whereExpression, expresionist.GetSqlParameters()));
        }
Ejemplo n.º 3
0
        public static Sql WhereIn <T>(this Sql sql, Expression <Func <T, object> > fieldSelector, IEnumerable values)
        {
            var expresionist    = new PocoToSqlExpressionHelper <T>();
            var fieldExpression = expresionist.Visit(fieldSelector);

            return(sql.Where(fieldExpression + " IN (@values)", new { @values = values }));
        }
Ejemplo n.º 4
0
        public void Poco_Expression_Value_Does_Not_Get_Double_Escaped()
        {
            //mysql escapes backslashes, so we'll test with that
            SqlSyntaxContext.SqlSyntaxProvider = new MySqlSyntaxProvider(Mock.Of <ILogger>());

            Expression <Func <UserDto, bool> > predicate = user => user.Login.StartsWith("mydomain\\myuser");
            var modelToSqlExpressionHelper = new PocoToSqlExpressionHelper <UserDto>();
            var result = modelToSqlExpressionHelper.Visit(predicate);

            Console.WriteLine("Poco to Sql ExpressionHelper: \n" + result);

            Assert.AreEqual("upper(`umbracoUser`.`userLogin`) LIKE upper(@0)", result);
            Assert.AreEqual("mydomain\\myuser%", modelToSqlExpressionHelper.GetSqlParameters()[0]);
        }