Beispiel #1
0
        internal string ToESqlString()
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("\n\tSELECT ");

            if (m_selectDistinct == SelectDistinct.Yes)
            {
                builder.Append("DISTINCT ");
            }

            foreach (ProjectedSlot ps in m_projectedSlots)
            {
                MemberProjectedSlot jtn = ps as MemberProjectedSlot;
                StructuralType      st  = jtn.MemberPath.LeafEdmMember.DeclaringType;
                StringBuilder       sb  = new StringBuilder();
                jtn.MemberPath.AsEsql(sb, "e");
                builder.AppendFormat("{0}, ", sb.ToString());
            }
            //remove the extra-comma after the last slot
            builder.Remove(builder.Length - 2, 2);

            builder.Append("\n\tFROM ");
            EntitySetBase extent = m_extentMemberPath.Extent;

            CqlWriter.AppendEscapedQualifiedName(builder, extent.EntityContainer.Name, extent.Name);
            builder.Append(" AS e");

            if (m_whereClause.IsTrue == false)
            {
                builder.Append("\n\tWHERE ");

                StringBuilder qbuilder = new StringBuilder();
                m_whereClause.AsEsql(qbuilder, "e");

                builder.Append(qbuilder.ToString());
            }
            builder.Append("\n    ");

            return(builder.ToString());
        }