Пример #1
0
 internal QueryConverter(IDataServices services, TypeSystemProvider typeProvider, Translator translator, SqlFactory sql) {
     if (services == null) {
         throw Error.ArgumentNull("services");
     }
     if (sql == null) {
         throw Error.ArgumentNull("sql");
     }
     if (translator == null) {
         throw Error.ArgumentNull("translator");
     }
     if (typeProvider == null) {
         throw Error.ArgumentNull("typeProvider");
     }
     this.services = services;
     this.translator = translator;
     this.sql = sql;
     this.typeProvider = typeProvider;
     this.map = new Dictionary<ParameterExpression, SqlExpression>();
     this.exprMap = new Dictionary<ParameterExpression, Expression>();
     this.dupMap = new Dictionary<ParameterExpression, SqlNode>();
     this.gmap = new Dictionary<SqlNode, GroupInfo>();
     this.allowDeferred = true;
 }
Пример #2
0
 internal SqlBinder(Translator translator, SqlFactory sqlFactory, MetaModel model, DataLoadOptions shape, SqlColumnizer columnizer, bool canUseOuterApply) {
     this.sql = sqlFactory;
     this.columnizer = columnizer;
     this.visitor = new Visitor(this, translator, this.columnizer, this.sql, model, shape, canUseOuterApply);
 }
Пример #3
0
 internal Visitor(SqlBinder binder, Translator translator, SqlColumnizer columnizer, SqlFactory sqlFactory, MetaModel model, DataLoadOptions shape, bool canUseOuterApply) {
     this.binder = binder;
     this.translator = translator;
     this.columnizer = columnizer;
     this.sql = sqlFactory;
     this.typeProvider = sqlFactory.TypeProvider;
     this.expander = new SqlExpander(this.sql);
     this.aggregateChecker = new SqlAggregateChecker();
     this.linkMap = new LinkOptimizationScope(null);
     this.outerAliasMap = new Dictionary<SqlAlias, SqlAlias>();
     this.model = model;
     this.shape = shape;
     this.canUseOuterApply = canUseOuterApply;
 }