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; }
public NextProviderEnumerable(INextProvider <TIn> resource, Expression expression) { this.resource = resource; this.expression = expression; }
public NextProviderQueryable(INextProvider <TIn> resource) { this.resource = resource; this.Expression = Expression.Constant(this); this.Provider = new NextProviderQueryProvider <TIn>(this.resource); }
public NextProviderEnumerator(INextProvider <TIn> resource, Expression expression) { this.resource = resource; this.rootNode = expression.Parse(); }
public NextProviderQueryProvider(INextProvider <TIn> resource) { this.resource = resource; }
public static IQueryable <TItem> AsQueryable <TItem>(this INextProvider <TItem> resource) { return(new NextProviderQueryable <TItem, TItem>(resource)); }