Name |
Description |
AggregateChecker |
Determines if a SelectExpression contains any aggregate expressions |
AggregateRewriter |
Rewrite aggregate expressions, moving them into same select expression that has the group-by clause |
AggregateRewriter.AggregateGatherer |
|
ClientJoinedProjectionRewriter |
rewrites nested projections into client-side joins |
ColumnMapper |
Rewrite all column references to one or more aliases to a new single alias |
ColumnProjector |
Splits an expression into two parts 1) a list of column declarations for sub-expressions that must be evaluated on the server 2) a expression that describes how to combine/project the columns back together into the correct result |
ColumnProjector.Nominator |
Nominator is a class that walks an expression tree bottom up, determining the set of candidate expressions that are possible columns of a select expression |
CrossApplyRewriter |
Attempts to rewrite cross-apply and outer-apply joins as inner and left-outer joins |
DbExpressionComparer |
Determines if two expressions are equivalent. Supports DbExpression nodes. |
DbExpressionReplacer |
Replaces references to one specific instance of an expression node with another node. Supports DbExpression nodes |
DbExpressionVisitor |
An extended expression visitor including custom DbExpression nodes |
DbExpressionWriter |
Writes out an expression tree (including DbExpression nodes) in a C#-ish syntax |
DeclaredAliasGatherer |
returns the set of all aliases produced by a query source |
ImplicitMapping |
A simple query mapping that attempts to infer mapping from naming conventionss |
NamedValueGatherer |
|
OrderByRewriter |
Moves order-bys to the outermost select if possible |
OrderByRewriter.BindResult |
|
Parameterizer |
Converts user arguments into named-value parameters |
ProjectedColumns |
Result from calling ColumnProjector.ProjectColumns |
QueryBinder |
Converts LINQ query operators to into custom DbExpression's |
QueryBinder.GroupByInfo |
|
QueryDuplicator |
Duplicate the query expression by making a copy with new table aliases |
QueryLanguage |
Defines the language rules for the query provider |
QueryMapping |
Defines mapping information & rules for the query provider |
QueryPolicy |
Defines query execution & materialization policies. |
RedundantColumnRemover |
Removes duplicate column declarations that refer to the same underlying column |
RedundantJoinRemover |
Removes joins expressions that are identical to joins that already exist |
RedundantSubqueryRemover |
Removes select expressions that don't add any additional semantic value |
RedundantSubqueryRemover.RedundantSubqueryGatherer |
|
RedundantSubqueryRemover.SubqueryMerger |
|
ReferencedAliasGatherer |
returns the set of all aliases produced by a query source |
RelationshipBinder |
Translates accesses to relationship members into projections or joins |
RelationshipIncluder |
Adds relationship to query results depending on policy |
SelectGatherer |
returns the list of SelectExpressions accessible from the source expression |
SingletonProjectionRewriter |
Rewrites nested singleton projection into server-side joins |
SkipRewriter |
Rewrites take & skip expressions into uses of TSQL row_number function |
SubqueryRemover |
Removes one or more SelectExpression's by rewriting the expression tree to not include them, promoting their from clause expressions and rewriting any column expressions that may have referenced them to now reference the underlying data directly. |
TSqlFormatter |
Formats a query expression into TSQL language syntax |
TSqlLanguage |
TSQL specific QueryLanguage |
UnusedColumnRemover |
Removes column declarations in SelectExpression's that are not referenced |