public static Expression ResolveExpression( Expression expression, IMappingResolver resolver, IMappingResolutionStage stage, IMappingResolutionContext context, UniqueIdentifierGenerator generator) { ArgumentUtility.CheckNotNull("expression", expression); ArgumentUtility.CheckNotNull("resolver", resolver); ArgumentUtility.CheckNotNull("stage", stage); ArgumentUtility.CheckNotNull("context", context); ArgumentUtility.CheckNotNull("generator", generator); var entityIdentityResolver = new EntityIdentityResolver(stage, resolver, context); var comparisonSplitter = new CompoundExpressionComparisonSplitter(); var namedExpressionCombiner = new NamedExpressionCombiner(context); var groupAggregateSimplifier = new GroupAggregateSimplifier(stage, context); var visitor1 = new ResolvingExpressionVisitor( resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, false); var result1 = visitor1.Visit(expression); var visitor2 = new ResolvingExpressionVisitor( resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, true); var result2 = visitor2.Visit(result1); return(result2); }
public static Expression ResolveExpression ( Expression expression, IMappingResolver resolver, IMappingResolutionStage stage, IMappingResolutionContext context, UniqueIdentifierGenerator generator) { ArgumentUtility.CheckNotNull ("expression", expression); ArgumentUtility.CheckNotNull ("resolver", resolver); ArgumentUtility.CheckNotNull ("stage", stage); ArgumentUtility.CheckNotNull ("context", context); ArgumentUtility.CheckNotNull ("generator", generator); var entityIdentityResolver = new EntityIdentityResolver (stage, resolver, context); var comparisonSplitter = new CompoundExpressionComparisonSplitter(); var namedExpressionCombiner = new NamedExpressionCombiner (context); var groupAggregateSimplifier = new GroupAggregateSimplifier (stage, context); var visitor1 = new ResolvingExpressionVisitor ( resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, false); var result1 = visitor1.VisitExpression (expression); var visitor2 = new ResolvingExpressionVisitor ( resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, true); var result2 = visitor2.VisitExpression (result1); return result2; }
public void SetUp () { _compoundExpressionComparisonSplitter = new CompoundExpressionComparisonSplitter(); }