Example #1
0
        internal static QueryFactory CreateQueryFactory(XQuery xQuery)
        {
            var factory = new QueryFactory(xQuery.Connection, xQuery.Compiler);

            factory.Logger = xQuery.Logger;

            return(factory);
        }
Example #2
0
        public Query Query()
        {
            var query = new XQuery(this.Connection, this.Compiler);

            query.Logger = Logger;

            return(query);
        }
Example #3
0
        public Query Query()
        {
            var query = new XQuery(this.Connection, this.Compiler, this.Transaction);

            query.QueryFactory = this;

            query.Logger = Logger;

            return(query);
        }
Example #4
0
        internal static QueryFactory CreateQueryFactory(Query query)
        {
            XQuery xQuery = CastToXQuery(query);

            QueryFactory factory = new QueryFactory(xQuery.Connection, xQuery.Compiler);

            factory.Logger = xQuery.Logger;

            return(factory);
        }
Example #5
0
        public Query Query()
        {
            XQuery query = new XQuery(this.Connection, this.Compiler);

            query.QueryFactory = this;

            query.Logger = Logger;

            return(query);
        }
Example #6
0
        public Query Query(Query query)
        {
            var xQuery = new XQuery(this.Connection, this.Compiler);

            xQuery.Clauses = query.Clauses.Select(x => x.Clone()).ToList();

            xQuery.QueryAlias = query.QueryAlias;
            xQuery.IsDistinct = query.IsDistinct;
            xQuery.Method     = query.Method;

            xQuery.SetEngineScope(query.EngineScope);

            return(xQuery);
        }
Example #7
0
        public override Query Clone()
        {
            var query = new XQuery(this.Connection, this.Compiler);

            query.Clauses = this.Clauses.Select(x => x.Clone()).ToList();

            query.QueryAlias = QueryAlias;
            query.IsDistinct = IsDistinct;
            query.Method     = Method;

            query.SetEngineScope(EngineScope);

            return(query);
        }
Example #8
0
        public override Query Clone()
        {
            var query = new XQuery(this.Connection, this.Compiler, this.Transaction);

            query.Clauses = this.Clauses.Select(x => x.Clone()).ToList();
            query.Logger  = this.Logger;

            query.QueryAlias = QueryAlias;
            query.IsDistinct = IsDistinct;
            query.Method     = Method;
            query.Includes   = Includes;
            query.Variables  = Variables;

            query.SetEngineScope(EngineScope);

            return(query);
        }
Example #9
0
        internal static XQuery CastToXQuery(Query query, string method = null)
        {
            XQuery xQuery = query as XQuery;

            if (xQuery is null)
            {
                if (method == null)
                {
                    throw new InvalidOperationException($"Execution methods can only be used with `XQuery` instances, consider using the `QueryFactory.Query()` to create executable queries, check https://sqlkata.com/docs/execution/setup#xquery-class for more info");
                }
                else
                {
                    throw new InvalidOperationException($"The method ${method} can only be used with `XQuery` instances, consider using the `QueryFactory.Query()` to create executable queries, check https://sqlkata.com/docs/execution/setup#xquery-class for more info");
                }
            }

            return(xQuery);
        }
Example #10
0
        /// <summary>
        /// Create an XQuery instance from a regular Query
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public Query FromQuery(Query query)
        {
            var xQuery = new XQuery(this.Connection, this.Compiler, this.Transaction);

            xQuery.QueryFactory = this;

            xQuery.Clauses = query.Clauses.Select(x => x.Clone()).ToList();

            xQuery.SetParent(query.Parent);
            xQuery.QueryAlias = query.QueryAlias;
            xQuery.IsDistinct = query.IsDistinct;
            xQuery.Method     = query.Method;
            xQuery.Includes   = query.Includes;
            xQuery.Variables  = query.Variables;

            xQuery.SetEngineScope(query.EngineScope);

            xQuery.Logger = Logger;

            return(xQuery);
        }