JoinQueryExpression.cs 1.0 KB

123456789101112131415161718192021222324252627282930
  1. using Ant.Query.QueryState;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Linq.Expressions;
  6. using System.Text;
  7. namespace Ant.Query.QueryExpressions
  8. {
  9. class JoinQueryExpression : QueryExpression
  10. {
  11. List<JoiningQueryInfo> _joinedQueries;
  12. LambdaExpression _selector;
  13. public JoinQueryExpression(Type elementType, QueryExpression prevExpression, List<JoiningQueryInfo> joinedQueries, LambdaExpression selector)
  14. : base(QueryExpressionType.JoinQuery, elementType, prevExpression)
  15. {
  16. this._joinedQueries = new List<JoiningQueryInfo>(joinedQueries.Count);
  17. this._joinedQueries.AddRange(joinedQueries);
  18. this._selector = selector;
  19. }
  20. public List<JoiningQueryInfo> JoinedQueries { get { return this._joinedQueries; } }
  21. public LambdaExpression Selector { get { return this._selector; } }
  22. public override T Accept<T>(QueryExpressionVisitor<T> visitor)
  23. {
  24. return visitor.Visit(this);
  25. }
  26. }
  27. }