C# Class Signum.Engine.Linq.MetadataVisitor

QueryBinder is a visitor that converts method calls to LINQ operations into custom DbExpression nodes and references to class members into references to columns
Inheritance: Signum.Utilities.ExpressionTrees.SimpleExpressionVisitor
显示文件 Open project: signumsoftware/framework Class Usage Examples

Public Methods

Method Description
AggregateImplementations ( IEnumerable implementations ) : Implementations
AsProjection ( Expression expression ) : MetaProjectorExpression
TableType ( object value ) : Type
Visit ( Expression exp ) : Expression

Protected Methods

Method Description
BindJoin ( Type resultType, Expression outerSource, Expression innerSource, LambdaExpression outerKey, LambdaExpression innerKey, LambdaExpression resultSelector ) : Expression
BindOrderBy ( Type resultType, Expression source, LambdaExpression orderSelector, OrderType orderType ) : Expression
BindSelectMany ( Type resultType, Expression source, LambdaExpression collectionSelector, LambdaExpression resultSelector ) : Expression
BindThenBy ( Expression source, LambdaExpression orderSelector, OrderType orderType ) : Expression
VisitBinary ( BinaryExpression b ) : Expression
VisitConditional ( ConditionalExpression c ) : Expression
VisitConstant ( ConstantExpression c ) : Expression
VisitMember ( MemberExpression m ) : Expression
VisitMethodCall ( MethodCallExpression m ) : Expression
VisitParameter ( System.Linq.Expressions.ParameterExpression p ) : Expression
VisitTypeBinary ( TypeBinaryExpression b ) : Expression
VisitUnary ( UnaryExpression u ) : Expression

Private Methods

Method Description
BindAggregate ( Type resultType, AggregateFunction aggregateFunction, Expression source, LambdaExpression selector ) : Expression
BindAll ( Type resultType, Expression source, LambdaExpression predicate ) : Expression
BindAny ( Type resultType, Expression source ) : Expression
BindContains ( Type resultType, Expression source, Expression item ) : Expression
BindCount ( Type resultType, Expression source ) : Expression
BindDistinct ( Type resultType, Expression source ) : Expression
BindGroupBy ( Type resultType, Expression source, LambdaExpression keySelector, LambdaExpression elementSelector ) : Expression
BindMember ( Expression source, MemberInfo member, Type memberType ) : Expression
BindSelect ( Type resultType, Expression source, LambdaExpression selector ) : Expression
BindSkip ( Type resultType, Expression source, Expression count ) : Expression
BindTake ( Type resultType, Expression source, Expression count ) : Expression
BindUniqueRow ( Type resultType, UniqueFunction function, Expression source, LambdaExpression predicate ) : Expression
BindWhere ( Type resultType, Expression source, LambdaExpression predicate ) : Expression
CastImplementations ( Implementations implementations, Type cleanType ) : Implementations
GatherMetadata ( Expression expression ) : Meta>.Dictionary
GetImplementations ( PropertyRoute propertyRoutes, Type cleanType ) : Entities.Implementations?
JustVisit ( LambdaExpression expression, MetaExpression metaExpression ) : Expression
MakeCleanMeta ( Type type, Expression expression ) : MetaExpression
MakeDirtyMeta ( Type type, Implementations implementations ) : MetaExpression
MakeVoidMeta ( Type type ) : Expression
MapAndVisit ( LambdaExpression lambda ) : Expression
MetadataVisitor ( ) : System

Method Details

AggregateImplementations() public static method

public static AggregateImplementations ( IEnumerable implementations ) : Implementations
implementations IEnumerable
return Implementations

AsProjection() public static method

public static AsProjection ( Expression expression ) : MetaProjectorExpression
expression System.Linq.Expressions.Expression
return MetaProjectorExpression

BindJoin() protected method

protected BindJoin ( Type resultType, Expression outerSource, Expression innerSource, LambdaExpression outerKey, LambdaExpression innerKey, LambdaExpression resultSelector ) : Expression
resultType System.Type
outerSource System.Linq.Expressions.Expression
innerSource System.Linq.Expressions.Expression
outerKey System.Linq.Expressions.LambdaExpression
innerKey System.Linq.Expressions.LambdaExpression
resultSelector System.Linq.Expressions.LambdaExpression
return System.Linq.Expressions.Expression

BindOrderBy() protected method

protected BindOrderBy ( Type resultType, Expression source, LambdaExpression orderSelector, OrderType orderType ) : Expression
resultType System.Type
source System.Linq.Expressions.Expression
orderSelector System.Linq.Expressions.LambdaExpression
orderType OrderType
return System.Linq.Expressions.Expression

BindSelectMany() protected method

protected BindSelectMany ( Type resultType, Expression source, LambdaExpression collectionSelector, LambdaExpression resultSelector ) : Expression
resultType System.Type
source System.Linq.Expressions.Expression
collectionSelector System.Linq.Expressions.LambdaExpression
resultSelector System.Linq.Expressions.LambdaExpression
return System.Linq.Expressions.Expression

BindThenBy() protected method

protected BindThenBy ( Expression source, LambdaExpression orderSelector, OrderType orderType ) : Expression
source System.Linq.Expressions.Expression
orderSelector System.Linq.Expressions.LambdaExpression
orderType OrderType
return System.Linq.Expressions.Expression

TableType() public method

public TableType ( object value ) : Type
value object
return System.Type

Visit() public method

public Visit ( Expression exp ) : Expression
exp System.Linq.Expressions.Expression
return System.Linq.Expressions.Expression

VisitBinary() protected method

protected VisitBinary ( BinaryExpression b ) : Expression
b System.Linq.Expressions.BinaryExpression
return System.Linq.Expressions.Expression

VisitConditional() protected method

protected VisitConditional ( ConditionalExpression c ) : Expression
c System.Linq.Expressions.ConditionalExpression
return System.Linq.Expressions.Expression

VisitConstant() protected method

protected VisitConstant ( ConstantExpression c ) : Expression
c System.Linq.Expressions.ConstantExpression
return System.Linq.Expressions.Expression

VisitMember() protected method

protected VisitMember ( MemberExpression m ) : Expression
m System.Linq.Expressions.MemberExpression
return System.Linq.Expressions.Expression

VisitMethodCall() protected method

protected VisitMethodCall ( MethodCallExpression m ) : Expression
m System.Linq.Expressions.MethodCallExpression
return System.Linq.Expressions.Expression

VisitParameter() protected method

protected VisitParameter ( System.Linq.Expressions.ParameterExpression p ) : Expression
p System.Linq.Expressions.ParameterExpression
return System.Linq.Expressions.Expression

VisitTypeBinary() protected method

protected VisitTypeBinary ( TypeBinaryExpression b ) : Expression
b System.Linq.Expressions.TypeBinaryExpression
return System.Linq.Expressions.Expression

VisitUnary() protected method

protected VisitUnary ( UnaryExpression u ) : Expression
u System.Linq.Expressions.UnaryExpression
return System.Linq.Expressions.Expression