Exemple #1
0
        public void BeginJoin(JoinElement join)
        {
            this.tables.Push(join);

            if (join.JoinType == JoinType.InnerJoin)
            {
                from.Append("\r\n   INNER JOIN ");
            }
            else if (join.JoinType == JoinType.LeftOuterJoin)
            {
                from.Append("\r\n   LEFT OUTER JOIN ");
            }
            else if (join.JoinType == JoinType.RightOuterJoin)
            {
                from.Append("\r\n   RIGHT OUTER JOIN ");
            }
            else if (join.JoinType == JoinType.FullOuterJoin)
            {
                from.Append("\r\n   FULL OUTER JOIN ");
            }
            else
            {
                throw new InvalidOperationException("Jointype not supported.");
            }

            from.Append(GetUniqueFullNameWithAlias(join));

            from.Append(" ON (");

            string sep = "";

            for (int i = 0; i < join.Relation.FromColumns.Count; i++)
            {
                from.Append(sep);
                from.Append(GetFullNameOrAlias(join.LeftTable));
                from.Append(".[");
                from.Append(join.Relation.FromColumns[i]);
                from.Append("]=");
                from.Append(GetFullNameOrAlias(join));
                from.Append(".[");
                from.Append(join.Relation.ToColumns[i]);
                from.Append("]");
                sep = " AND ";
            }

            from.Append(")");
        }
Exemple #2
0
 public void EndJoin(JoinElement join)
 {
     this.tables.Pop();
 }