Exemplo n.º 1
0
        public ExpressionExecutor(INextProvider <TIn> resource, MethodCallExpression expression)
        {
            this.resource   = resource;
            this.expression = expression;

            if (!this.expression.Arguments.Any())
            {
                throw new NotSupportedException(string.Format(
                                                    "This variant of the {0} method is not supported.", this.expression.Method.Name));
            }
            this.targetExpression = expression.Arguments[0];

            this.targetType = this.targetExpression.Type;
            if (this.targetType.GetInterfaces().Contains(typeof(IQueryable)))
            {
                this.targetType = this.targetType.GetGenericArguments()[0];
            }

            this.secondExpression = this.expression.Arguments.Count > 1 ? this.expression.Arguments[1] : null;
        }
Exemplo n.º 2
0
 public NextProviderEnumerable(INextProvider <TIn> resource, Expression expression)
 {
     this.resource   = resource;
     this.expression = expression;
 }
Exemplo n.º 3
0
 public NextProviderQueryable(INextProvider <TIn> resource)
 {
     this.resource   = resource;
     this.Expression = Expression.Constant(this);
     this.Provider   = new NextProviderQueryProvider <TIn>(this.resource);
 }
Exemplo n.º 4
0
 public NextProviderEnumerator(INextProvider <TIn> resource, Expression expression)
 {
     this.resource = resource;
     this.rootNode = expression.Parse();
 }
Exemplo n.º 5
0
 public NextProviderQueryProvider(INextProvider <TIn> resource)
 {
     this.resource = resource;
 }
Exemplo n.º 6
0
 public static IQueryable <TItem> AsQueryable <TItem>(this INextProvider <TItem> resource)
 {
     return(new NextProviderQueryable <TItem, TItem>(resource));
 }