Ejemplo n.º 1
0
        protected override Expression VisitBinary(BinaryExpression b)
        {
            var left  = Visit(b.Left);
            var right = Visit(b.Right);

            if (left is NamedValueExpression nv0 && right is ColumnExpression c0)
            {
                left = QueryUtility.GetNamedValueExpression(nv0.Name, nv0.Value, (DbType)c0.MapInfo.DataType);
            }
Ejemplo n.º 2
0
        protected override ColumnAssignment VisitColumnAssignment(ColumnAssignment ca)
        {
            ca = base.VisitColumnAssignment(ca);
            Expression expression = ca.Expression;

            if (expression is NamedValueExpression nv)
            {
                expression = QueryUtility.GetNamedValueExpression(nv.Name, nv.Value, (DbType)ca.Column.MapInfo.DataType);
            }

            return(this.UpdateColumnAssignment(ca, ca.Column, expression));
        }
Ejemplo n.º 3
0
        protected override Expression VisitBinary(BinaryExpression b)
        {
            Expression left  = this.Visit(b.Left);
            Expression right = this.Visit(b.Right);

            if (left.NodeType == (ExpressionType)DbExpressionType.NamedValue &&
                right.NodeType == (ExpressionType)DbExpressionType.Column)
            {
                NamedValueExpression nv = (NamedValueExpression)left;
                ColumnExpression     c  = (ColumnExpression)right;
                left = QueryUtility.GetNamedValueExpression(nv.Name, nv.Value, (DbType)c.MapInfo.DataType);
            }
            else if (b.Right.NodeType == (ExpressionType)DbExpressionType.NamedValue &&
                     b.Left.NodeType == (ExpressionType)DbExpressionType.Column)
            {
                NamedValueExpression nv = (NamedValueExpression)right;
                ColumnExpression     c  = (ColumnExpression)left;
                right = QueryUtility.GetNamedValueExpression(nv.Name, nv.Value, (DbType)c.MapInfo.DataType);
            }

            return(b.Update(left, b.Conversion, right));
        }