/// <summary> /// modified as internal because LINQ to Twitter is Unusable /// without TwitterContext, but provider still needs access /// </summary> /// <param name="provider">IQueryProvider</param> /// <param name="expression">Expression Tree</param> internal TwitterQueryable( TwitterQueryProvider provider, Expression expression) { if (provider == null) { throw new ArgumentNullException("provider"); } if (expression == null) { throw new ArgumentNullException("expression"); } #if NETFX_CORE if (!typeof(IQueryable <T>).GetTypeInfo().IsAssignableFrom(expression.Type.GetTypeInfo())) { throw new ArgumentOutOfRangeException("expression"); } #else if (!typeof(IQueryable <T>).IsAssignableFrom(expression.Type)) { throw new ArgumentOutOfRangeException("expression"); } #endif Provider = provider; Expression = expression; }
/// <summary> /// init with TwitterContext /// </summary> /// <param name="context"></param> public TwitterQueryable(TwitterContext context) { Provider = new TwitterQueryProvider(); Expression = Expression.Constant(this); // lets provider reach back to TwitterContext, // where execute implementation resides (Provider as TwitterQueryProvider).Context = context; }
/// <summary> /// modified as internal because LINQ to Twitter is Unusable /// without TwitterContext, but provider still needs access /// </summary> /// <param name="provider">IQueryProvider</param> /// <param name="expression">Expression Tree</param> internal TwitterQueryable( TwitterQueryProvider provider, Expression expression) { if (provider == null) { throw new ArgumentNullException("provider"); } if (expression == null) { throw new ArgumentNullException("expression"); } if (!typeof(IQueryable <T>).IsAssignableFrom(expression.Type)) { throw new ArgumentOutOfRangeException("expression"); } Provider = provider; Expression = expression; }