public string GetSelectFields(CslaObjectInfo info) { StringBuilder sb = new StringBuilder(); sb.Append(Indent(2) + "SELECT" + Environment.NewLine); bool first = true; ValuePropertyCollection vpc = new ValuePropertyCollection(); if (IncludeParentProperties) { vpc.AddRange(info.GetParentValueProperties()); } vpc.AddRange(info.GetAllValueProperties()); foreach (ValueProperty prop in vpc) { if (prop.DataAccess != ValueProperty.DataAccessBehaviour.WriteOnly) { if (!first) { sb.Append("," + Environment.NewLine); } else { first = false; } sb.Append(Indent(3) + " "); if (prop.DbBindColumn.DataType.ToString() == "StringFixedLength") { sb.Append("RTRIM("); sb.Append("[" + GetCorrelationName(prop) + "].[" + prop.DbBindColumn.ColumnName + "]" + ")"); sb.Append(String.Format(" AS [{0}]", prop.ParameterName)); } else { sb.Append("[" + GetCorrelationName(prop) + "].[" + prop.DbBindColumn.ColumnName + "]"); if (prop.DbBindColumn.ColumnName != prop.ParameterName) { sb.Append(String.Format(" AS [{0}]", prop.ParameterName)); } } } } sb.Append(Environment.NewLine); return(sb.ToString()); }