public string GetQueryText(Expression expression) { var translator = this.Translate(expression); IEnumerable <string> parts = new [] { Prefix.Collection2String(Dyno.Prefixes.Concat(translator.Prefixes)), translator.WithClause != null?translator.WithClause.ToString() : null, translator.DeleteClause != null ? "DELETE " + translator.DeleteClause.ToString(Dyno.AutoQuotation, Dyno.SkipTriplesWithEmptyObject, false) : string.Empty, translator.InsertClause != null ? "INSERT " + translator.InsertClause.ToString(Dyno.AutoQuotation, Dyno.SkipTriplesWithEmptyObject, false) : string.Empty, translator.UsingClause != null?translator.UsingClause.ToString() : null, UsingNamed.Collection2String(translator.UsingNamedClause), !string.IsNullOrEmpty(translator.SelectClause) ? "SELECT " + translator.SelectClause : string.Empty, translator.FromClause != null?translator.FromClause.ToString() : null, FromNamed.Collection2String(translator.FromNamedClause), translator.WhereClause != null ? "WHERE " + translator.WhereClause.ToString(Dyno.AutoQuotation, Dyno.SkipTriplesWithEmptyObject, false) : string.Empty, translator.GroupByClause, translator.HavingClause, translator.OrderByClause, translator.LimitClause.ToString(), translator.OffsetClause.ToString() }; string query = string.Join(Environment.NewLine, parts.Where(part => !string.IsNullOrEmpty(part))); return(query); }