static void VisitStartsWith(SqlExpressionVisitor <TEntity> visitor, MethodCallExpression call) { visitor.Visit(call.Object); visitor.AddFragment(" LIKE "); visitor.Visit(call.Arguments[0]); visitor.AddFragment(" || '%'"); }
static void VisitContains(SqlExpressionVisitor <TEntity> visitor, MethodCallExpression call) { visitor.Visit(call.Object); visitor.AddFragment(" LIKE '%' || "); visitor.Visit(call.Arguments[0]); visitor.AddFragment(" || '%'"); }
static void VisitContains(SqlExpressionVisitor <TEntity> visitor, MethodCallExpression call) { visitor.Visit(call.Object); visitor.AddFragment(" LIKE CONCAT('%', "); visitor.Visit(call.Arguments[0]); visitor.AddFragment(", '%')"); }
void IExpressionNodeVisitor <TEntity, BinaryExpression> .Visit(SqlExpressionVisitor <TEntity> visitor, BinaryExpression node) { visitor.Visit(node.Left); visitor.AddFragment(" "); visitor.AddFragment(_operator); visitor.AddFragment(" "); visitor.Visit(node.Right); }
static void VisitSubstring(SqlExpressionVisitor <TEntity> visitor, MethodCallExpression call) { visitor.AddFragment("SUBSTRING("); visitor.Visit(call.Object); visitor.AddFragment(", "); visitor.Visit(call.Arguments[0]); visitor.AddFragment(", 8000)"); }
static void VisitSubstring(SqlExpressionVisitor <TEntity> visitor, MethodCallExpression call) { visitor.AddFragment("SUBSTR("); visitor.Visit(call.Object); foreach (var arg in call.Arguments) { visitor.AddFragment(", "); visitor.Visit(arg); } visitor.AddFragment(")"); }
void IExpressionNodeVisitor <EntityType, BinaryExpression> .Visit(SqlExpressionVisitor <EntityType> visitor, BinaryExpression node) { if (node.Left.NodeType == ExpressionType.Constant && ((ConstantExpression)node.Left).Value == null) { visitor.Visit(node.Right); visitor.AddFragment(" IS NOT NULL"); } else if (node.Right.NodeType == ExpressionType.Constant && ((ConstantExpression)node.Right).Value == null) { visitor.Visit(node.Left); visitor.AddFragment(" IS NOT NULL"); } else { visitor.Visit(node.Left); visitor.AddFragment(" <> "); visitor.Visit(node.Right); } }
void IExpressionNodeVisitor <TEntity, UnaryExpression> .Visit(SqlExpressionVisitor <TEntity> visitor, UnaryExpression node) { visitor.Visit(node.Operand); visitor.AddFragment(" <> 0"); }
static void VisitToLower(SqlExpressionVisitor <TEntity> visitor, MethodCallExpression call) { visitor.AddFragment("LOWER("); visitor.Visit(call.Object); visitor.AddFragment(")"); }