internal StringBuilder AsEsql(StringBuilder builder, string blockAlias, int indentLevel) { StringUtil.IndentNewLine(builder, indentLevel + 1); builder.Append("RELATIONSHIP("); var fields = new List <string>(); // If the variable is a relation end, we will gets it scope Extent, e.g., CPerson1 for the CPerson end of CPersonAddress1. builder.Append("CREATEREF("); CqlWriter.AppendEscapedQualifiedName(builder, m_toEndEntitySet.EntityContainer.Name, m_toEndEntitySet.Name); builder.Append(", ROW("); foreach (var memberPath in m_toEndEntityKeyMemberPaths) { var fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); fields.Add(fullFieldAlias); } StringUtil.ToSeparatedString(builder, fields, ", ", null); builder.Append(')'); builder.Append(","); CqlWriter.AppendEscapedTypeName(builder, m_toEndEntityType); builder.Append(')'); builder.Append(','); CqlWriter.AppendEscapedTypeName(builder, m_associationSet.ElementType); builder.Append(','); CqlWriter.AppendEscapedName(builder, m_fromEnd.Name); builder.Append(','); CqlWriter.AppendEscapedName(builder, m_toEnd.Name); builder.Append(')'); builder.Append(' '); return(builder); }
internal StringBuilder AsEsql( StringBuilder builder, string blockAlias, int indentLevel) { StringUtil.IndentNewLine(builder, indentLevel + 1); builder.Append("RELATIONSHIP("); List <string> stringList = new List <string>(); builder.Append("CREATEREF("); CqlWriter.AppendEscapedQualifiedName(builder, this.m_toEndEntitySet.EntityContainer.Name, this.m_toEndEntitySet.Name); builder.Append(", ROW("); foreach (MemberPath entityKeyMemberPath in this.m_toEndEntityKeyMemberPaths) { string qualifiedName = CqlWriter.GetQualifiedName(blockAlias, entityKeyMemberPath.CqlFieldAlias); stringList.Add(qualifiedName); } StringUtil.ToSeparatedString(builder, (IEnumerable)stringList, ", ", (string)null); builder.Append(')'); builder.Append(","); CqlWriter.AppendEscapedTypeName(builder, (EdmType)this.m_toEndEntityType); builder.Append(')'); builder.Append(','); CqlWriter.AppendEscapedTypeName(builder, (EdmType)this.m_associationSet.ElementType); builder.Append(','); CqlWriter.AppendEscapedName(builder, this.m_fromEnd.Name); builder.Append(','); CqlWriter.AppendEscapedName(builder, this.m_toEnd.Name); builder.Append(')'); builder.Append(' '); return(builder); }
internal override StringBuilder AsEsql(StringBuilder builder, string blockAlias, bool skipIsNotNull) { // Get e.g., T2._from1 using the table alias string qualifiedName = CqlWriter.GetQualifiedName(blockAlias, SlotName); builder.Append(qualifiedName); return(builder); }
internal override StringBuilder AsEsql( StringBuilder builder, string blockAlias, bool skipIsNotNull) { string qualifiedName = CqlWriter.GetQualifiedName(blockAlias, this.SlotName); builder.Append(qualifiedName); return(builder); }
internal override StringBuilder AsEsql(StringBuilder builder, MemberPath outputMember, string blockAlias) { AsCql( // createRef action (refScopeEntitySet, keyMemberOutputPaths) => { // Construct a scoped reference: CreateRef(CPerson1Set, NewRow(pid1, pid2), CPerson1) EntityType refEntityType = (EntityType)(((RefType)outputMember.EdmType).ElementType); builder.Append("CreateRef("); CqlWriter.AppendEscapedQualifiedName(builder, refScopeEntitySet.EntityContainer.Name, refScopeEntitySet.Name); builder.Append(", row("); for (int i = 0; i < keyMemberOutputPaths.Count; ++i) { if (i > 0) { builder.Append(", "); } // Given the member, we need its aliased name string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, keyMemberOutputPaths[i].CqlFieldAlias); builder.Append(fullFieldAlias); } builder.Append("), "); CqlWriter.AppendEscapedTypeName(builder, refEntityType); builder.Append(')'); }, // createType action (membersOutputPaths) => { // Construct an entity/complex/Association type in the Members order for fields: CPerson(CPerson1_Pid, CPerson1_Name) CqlWriter.AppendEscapedTypeName(builder, m_edmType); builder.Append('('); for (int i = 0; i < membersOutputPaths.Count; ++i) { if (i > 0) { builder.Append(", "); } // Given the member, we need its aliased name: CPerson1_Pid string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, membersOutputPaths[i].CqlFieldAlias); builder.Append(fullFieldAlias); } builder.Append(')'); }, outputMember); return(builder); }
internal override StringBuilder AsEsql( StringBuilder builder, MemberPath outputMember, string blockAlias) { this.AsCql((Action <EntitySet, IList <MemberPath> >)((refScopeEntitySet, keyMemberOutputPaths) => { EntityType elementType = (EntityType)((RefType)outputMember.EdmType).ElementType; builder.Append("CreateRef("); CqlWriter.AppendEscapedQualifiedName(builder, refScopeEntitySet.EntityContainer.Name, refScopeEntitySet.Name); builder.Append(", row("); for (int index = 0; index < keyMemberOutputPaths.Count; ++index) { if (index > 0) { builder.Append(", "); } builder.Append(CqlWriter.GetQualifiedName(blockAlias, keyMemberOutputPaths[index].CqlFieldAlias)); } builder.Append("), "); CqlWriter.AppendEscapedTypeName(builder, (EdmType)elementType); builder.Append(')'); }), (Action <IList <MemberPath> >)(membersOutputPaths => { CqlWriter.AppendEscapedTypeName(builder, this.m_edmType); builder.Append('('); for (int index = 0; index < membersOutputPaths.Count; ++index) { if (index > 0) { builder.Append(", "); } builder.Append(CqlWriter.GetQualifiedName(blockAlias, membersOutputPaths[index].CqlFieldAlias)); } builder.Append(')'); }), outputMember); return(builder); }