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); }
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); }
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); }
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); }