コード例 #1
0
        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);
        }
コード例 #2
0
 /// <summary>
 /// Evaluates FromNamed expression
 /// </summary>
 /// <param name="m">method call expression</param>
 private void VisitFromNamed(MethodCallExpression m)
 {
     //fix in next version! one iri can be specified per expresion only! see UsingNamed expression
     //string iri = (string)((ConstantExpression)m.Arguments[1]).Value;
     FromNamedClause = FromNamedClause.Concat(FromNamed.Parse(((ConstantExpression)m.Arguments[1]).Value));
 }