Ejemplo n.º 1
0
        private static void BuildQueryFromBinaryExpressionBody(BinaryExpression body, ref StringBuilder builder, string tableName)
        {
            string logicalString = string.Empty;

            if (GetNodeGroup(body) == NodeGroupTypes.Comparison)
            {
                builder.Append(QueryCreation.GetStringFromNodeType(body, tableName));
                return;
            }
            else
            {
                logicalString = QueryCreation.GetStringFromNodeType(body, tableName);
            }

            if (GetNodeGroup(body.Left) == NodeGroupTypes.Comparison)
            {
                builder.Append(QueryCreation.GetStringFromNodeType(body.Left, tableName));
            }
            else
            {
                if (body.Left.NodeType == ExpressionType.Call)
                {
                    BuildQueryFromMethodCallExpressionBody((MethodCallExpression)body.Left, ref builder, tableName);
                }
                else
                {
                    BuildQueryFromBinaryExpressionBody((BinaryExpression)body.Left, ref builder, tableName);
                }
            }

            if (!string.IsNullOrWhiteSpace(logicalString))
            {
                builder.Append(logicalString);
            }

            if (GetNodeGroup(body.Right) == NodeGroupTypes.Comparison)
            {
                builder.Append(QueryCreation.GetStringFromNodeType(body.Right, tableName));
            }
            else
            {
                if (body.Right.NodeType == ExpressionType.Call)
                {
                    BuildQueryFromMethodCallExpressionBody((MethodCallExpression)body.Right, ref builder, tableName);
                }
                else
                {
                    BuildQueryFromBinaryExpressionBody((BinaryExpression)body.Right, ref builder, tableName);
                }
            }
        }
Ejemplo n.º 2
0
 private static void BuildQueryFromMethodCallExpressionBody(MethodCallExpression body, ref StringBuilder builder, string qualifiedTableName)
 {
     builder.Append(QueryCreation.GetStringFromNodeType(body, qualifiedTableName));
 }