コード例 #1
0
 private void BuildSql(SingleOperationNode node)
 {
     if (node.Operator == ExpressionType.Not)
     {
         _conditions.Add(" NOT ");
     }
     BuildSql(node.Child);
 }
コード例 #2
0
 void BuildSql(SingleOperationNode node)
 {
     if (node.Operator == ExpressionType.Not)
     {
         _builder.Not();
     }
     BuildSql(node.Child);
 }
コード例 #3
0
        private Node ResolveQuery(UnaryExpression unaryExpression)
        {
            dynamic operand             = unaryExpression.Operand;
            dynamic nodeQuery           = ResolveQuery(operand);
            var     singleOperationNode = new SingleOperationNode(unaryExpression.NodeType, nodeQuery);

            return(singleOperationNode);
        }
コード例 #4
0
        private void Build(SingleOperationNode node)
        {
            if (node.Operator == ExpressionType.Not)
            {
                Not();
            }

            Build(node.Child);
        }
コード例 #5
0
 void BuildSql(SingleOperationNode leftMember, Node rightMember, ExpressionType op)
 {
     if (leftMember.Operator == ExpressionType.Not)
     {
         BuildSql(leftMember as Node, rightMember, op);
     }
     else
     {
         BuildSql((dynamic)leftMember.Child, (dynamic)rightMember, op);
     }
 }
コード例 #6
0
        private Node ResolveQuery(UnaryExpression unaryExpression)
        {
            SingleOperationNode node = new SingleOperationNode();

            node.Operator = unaryExpression.NodeType;
            node.Child    = ResolveQuery((dynamic)unaryExpression.Operand);
            if (node.Operator == ExpressionType.ArrayLength)
            {
                if (node.Child is ValueNode)
                {
                    var  value    = (node.Child as ValueNode).Value;
                    Type type     = value.GetType();
                    var  property = type.GetProperty("Length");
                    node.Child = new ValueNode(property.GetValue(value, null));
                }
            }
            return(node);
        }
コード例 #7
0
 void BuildSql(Node leftMember, SingleOperationNode rightMember, ExpressionType op)
 {
     BuildSql(rightMember, leftMember, op);
 }
コード例 #8
0
 private void BuildSql(SingleOperationNode leftMember, SingleOperationNode rightMember, ExpressionType op)
 {
     BuildSql((dynamic)leftMember.Child, (dynamic)rightMember.Child, op);
 }
コード例 #9
0
 private void Build(NodeBase leftMember, SingleOperationNode rightMember, ExpressionType op)
 {
     Build(rightMember, leftMember, op);
 }