/// <summary> /// Obtain the DataServiceContext from the incoming enumerable /// </summary> /// <param name="items">An IEnumerable that may be a DataServiceQuery or QueryOperationResponse object</param> /// <returns>DataServiceContext instance associated with the input</returns> private static DataServiceContext GetContextFromItems(IEnumerable <T> items) { Debug.Assert(items != null, "items != null"); DataServiceQuery <T> dataServiceQuery = items as DataServiceQuery <T>; if (dataServiceQuery != null) { DataServiceQueryProvider queryProvider = dataServiceQuery.Provider as DataServiceQueryProvider; Debug.Assert(queryProvider != null, "Got DataServiceQuery with unknown query provider."); DataServiceContext context = queryProvider.Context; Debug.Assert(context != null, "Query provider must always have valid context."); return(context); } QueryOperationResponse queryOperationResponse = items as QueryOperationResponse; if (queryOperationResponse != null) { Debug.Assert(queryOperationResponse.Results != null, "Got QueryOperationResponse without valid results."); DataServiceContext context = queryOperationResponse.Results.Context; Debug.Assert(context != null, "Materializer must always have valid context."); return(context); } throw new ArgumentException(Strings.DataServiceCollection_CannotDetermineContextFromItems); }
/// <summary> /// query object /// </summary> /// <param name="expression">expression for query</param> /// <param name="provider">query provider for query</param> public DataServiceQuery(Expression expression, DataServiceQueryProvider provider) { Debug.Assert(null != provider.Context, "null context"); Debug.Assert(expression != null, "null expression"); Debug.Assert(provider is DataServiceQueryProvider, "Currently only support Web Query Provider"); this.queryExpression = expression; this.queryProvider = provider; }
/// <summary> /// query object of a function which returns a collection of items /// </summary> /// <param name="expression">expression for query</param> /// <param name="provider">query provider for query</param> /// <param name="isComposable">whether this query is composable</param> public DataServiceQuery(Expression expression, DataServiceQueryProvider provider, bool isComposable) { Debug.Assert(provider.Context != null, "null context"); Debug.Assert(expression != null, "null expression"); Debug.Assert(provider is DataServiceQueryProvider, "Currently only support Web Query Provider"); this.queryExpression = expression; this.queryProvider = provider; this.IsComposable = isComposable; this.IsFunction = true; }
/// <summary> /// constructor /// </summary> /// <param name="expression">expression for query</param> /// <param name="provider">query provider for query</param> /// <param name="isComposable">whether this query is composable</param> internal DataServiceOrderedQuery(Expression expression, DataServiceQueryProvider provider, bool isComposable) : base(expression, provider, isComposable) { }
/// <summary> /// constructor /// </summary> /// <param name="expression">expression for query</param> /// <param name="provider">query provider for query</param> internal DataServiceOrderedQuery(Expression expression, DataServiceQueryProvider provider) : base(expression, provider) { }
/// <summary> /// query object /// </summary> /// <param name="expression">expression for query</param> /// <param name="provider">query provider for query</param> public DataServiceQuery(Expression expression, DataServiceQueryProvider provider) : this(expression, provider, true) { this.IsFunction = false; }