예제 #1
0
        JoinQueryResult Visit(QueryExpression exp)
        {
            IQueryState     state = QueryExpressionVisitor.VisitQueryExpression(exp, this._scopeParameters, this._resultElement.ScopeTables);
            JoinQueryResult ret   = state.ToJoinQueryResult(this._joinType, this._conditionExpression, this._scopeParameters, this._resultElement.ScopeTables, this._resultElement.GenerateUniqueTableAlias());

            return(ret);
        }
예제 #2
0
        JoinQueryResult Visit(QueryExpression exp)
        {
            IQueryState     state = QueryExpressionVisitor.VisitQueryExpression(exp);
            JoinQueryResult ret   = state.ToJoinQueryResult(this._joinType, this._conditionExpression, this._resultElement.FromTable, this._moeList, this._resultElement.GenerateUniqueTableAlias());

            return(ret);
        }
예제 #3
0
        JoinQueryResult Visit(QueryExpression exp)
        {
            IQueryState     state = QueryExpressionResolver.Resolve(exp, this._scopeParameters, this._queryModel.ScopeTables);
            JoinQueryResult ret   = state.ToJoinQueryResult(this._joinType, this._conditionExpression, this._scopeParameters, this._queryModel.ScopeTables, this._queryModel.GenerateUniqueTableAlias());

            return(ret);
        }
예제 #4
0
        public override IQueryState Accept(AggregateQueryExpression exp)
        {
            IQueryState subQueryState = this.AsSubQueryState();

            IQueryState state = subQueryState.Accept(exp);

            return(state);
        }
예제 #5
0
        DbSqlQueryExpression ConvertToDbSqlQueryExpression(Expression exp, Type resultType)
        {
            if (!IsIQueryType(exp.Type))
            {
                throw new NotSupportedException(exp.ToString());
            }

            QueryBase   query       = ExpressionEvaluator.Evaluate(exp) as QueryBase;
            IQueryState qs          = QueryExpressionVisitor.VisitQueryExpression(query.QueryExpression, this._scopeParameters, this._scopeTables);
            MappingData mappingData = qs.GenerateMappingData();

            DbSqlQueryExpression sqlQueryExpression = mappingData.SqlQuery.Update(resultType);

            return(sqlQueryExpression);
        }
예제 #6
0
        DbCommandFactor GenerateCommandFactor()
        {
            IQueryState qs   = QueryExpressionVisitor.VisitQueryExpression(this._query.QueryExpression);
            MappingData data = qs.GenerateMappingData();

            IObjectActivator objectActivator;

            objectActivator = data.ObjectActivatorCreator.CreateObjectActivator();

            IDbExpressionTranslator translator = this._query.DbContext._dbContextServiceProvider.CreateDbExpressionTranslator();
            List <DbParam>          parameters;
            string cmdText = translator.Translate(data.SqlQuery, out parameters);

            DbCommandFactor commandFactor = new DbCommandFactor(objectActivator, cmdText, parameters.ToArray());

            return(commandFactor);
        }
예제 #7
0
        DbCommandFactor GenerateCommandFactor()
        {
            IQueryState qs   = QueryExpressionResolver.Resolve(this._query.QueryExpression, new ScopeParameterDictionary(), new StringSet());
            MappingData data = qs.GenerateMappingData();

            IObjectActivator objectActivator;

            if (this._query._trackEntity)
            {
                objectActivator = data.ObjectActivatorCreator.CreateObjectActivator(this._query.DbContext);
            }
            else
            {
                objectActivator = data.ObjectActivatorCreator.CreateObjectActivator();
            }

            IDbExpressionTranslator translator    = this._query.DbContext.DatabaseProvider.CreateDbExpressionTranslator();
            DbCommandInfo           dbCommandInfo = translator.Translate(data.SqlQuery);

            DbCommandFactor commandFactor = new DbCommandFactor(objectActivator, dbCommandInfo.CommandText, dbCommandInfo.GetParameters());

            return(commandFactor);
        }
예제 #8
0
        DbCommandFactor GenerateCommandFactor()
        {
            IQueryState qs   = QueryExpressionVisitor.VisitQueryExpression(this._query.QueryExpression, new ScopeParameterDictionary(), new KeyDictionary <string>());
            MappingData data = qs.GenerateMappingData();

            IObjectActivator objectActivator;

            if (this._query._trackEntity)
            {
                objectActivator = data.ObjectActivatorCreator.CreateObjectActivator(this._query.DbContext);
            }
            else
            {
                objectActivator = data.ObjectActivatorCreator.CreateObjectActivator();
            }

            IDbExpressionTranslator translator = this._query.DbContext.DatabaseProvider.CreateDbExpressionTranslator();
            List <DbParam>          parameters;
            string cmdText = translator.Translate(data.SqlQuery, out parameters);

            DbCommandFactor commandFactor = new DbCommandFactor(objectActivator, cmdText, parameters.ToArray());

            return(commandFactor);
        }
예제 #9
0
        public override IQueryState Accept(DistinctExpression exp)
        {
            IQueryState state = this.AsSubQueryState();

            return(state.Accept(exp));
        }
예제 #10
0
        public override IQueryState Accept(GroupingQueryExpression exp)
        {
            IQueryState state = this.AsSubQueryState();

            return(state.Accept(exp));
        }
예제 #11
0
        public override IQueryState Accept(SelectExpression exp)
        {
            IQueryState queryState = this.AsSubQueryState();

            return(queryState.Accept(exp));
        }
 public BaseQuery(IQueryResult queryResult, IQueryState queryState)
 {
     this.queryResult = queryResult;
     this.queryState  = queryState;
 }