Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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;
        }
Exemplo n.º 3
0
        /// <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;
        }
Exemplo n.º 4
0
 /// <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)
 {
 }
Exemplo n.º 5
0
 /// <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)
 {
 }
Exemplo n.º 6
0
 /// <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;
 }