DataServiceContext.Execute Метод

Определение

Пересылает запрос в службу данных для выполнения указанного URI.

Перегрузки

Execute<T>(DataServiceQueryContinuation<T>)

Отправляет запрос в службу данных для получения следующей страницы данных в результатах запроса, разбитых на страницы.

Execute<TElement>(Uri)

Пересылает запрос в службу данных для выполнения указанного URI.

Execute<T>(DataServiceQueryContinuation<T>)

Отправляет запрос в службу данных для получения следующей страницы данных в результатах запроса, разбитых на страницы.

public:
generic <typename T>
 System::Data::Services::Client::QueryOperationResponse<T> ^ Execute(System::Data::Services::Client::DataServiceQueryContinuation<T> ^ continuation);
public System.Data.Services.Client.QueryOperationResponse<T> Execute<T> (System.Data.Services.Client.DataServiceQueryContinuation<T> continuation);
member this.Execute : System.Data.Services.Client.DataServiceQueryContinuation<'T> -> System.Data.Services.Client.QueryOperationResponse<'T>
Public Function Execute(Of T) (continuation As DataServiceQueryContinuation(Of T)) As QueryOperationResponse(Of T)

Параметры типа

T

Тип, возвращаемый запросом.

Параметры

continuation
DataServiceQueryContinuation<T>

Объект DataServiceQueryContinuation<T>, представляющий следующую страницу данных для возврата из службы данных.

Возвращаемое значение

Ответ, содержащий следующую страницу данных в результатах запроса.

Исключения

Если возникает ошибка во время выполнения запроса или в случае, если запрос преобразует содержимое ответного сообщения в объекты.

Комментарии

Предоставленный объект DataServiceQueryContinuation<T> содержит URI, который при выполнении возвращает следующую страницу данных в результатах запроса.

Применяется к

Execute<TElement>(Uri)

Пересылает запрос в службу данных для выполнения указанного URI.

public:
generic <typename TElement>
 System::Collections::Generic::IEnumerable<TElement> ^ Execute(Uri ^ requestUri);
public System.Collections.Generic.IEnumerable<TElement> Execute<TElement> (Uri requestUri);
member this.Execute : Uri -> seq<'Element>
Public Function Execute(Of TElement) (requestUri As Uri) As IEnumerable(Of TElement)

Параметры типа

TElement

Тип, возвращаемый запросом.

Параметры

requestUri
Uri

URI, на который будет отправлен запрос. URI может быть любым допустимым URI службы данных. Может содержать параметры запроса $.

Возвращаемое значение

IEnumerable<TElement>

Результаты операции запроса.

Исключения

Если ответ на запрос к requestUri не получен.

Если значение параметра requestUri равно null.

Если requestUri не является допустимым URI для службы данных.

Если возникает ошибка во время выполнения запроса или в случае, если запрос преобразует содержимое ответного сообщения в объекты.

Служба данных возвращает ошибку HTTP 404: ресурс не найден.

Примеры

Этот пример использует цикл do…while для загрузки сущностей Customers из разбитых на страницы результатов службы данных. Метод Execute вызывается с использованием URI следующей ссылки для получения следующей страницы данных.

// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
DataServiceQueryContinuation<Customer> token = null;
int pageCount = 0;

try
{
    // Execute the query for all customers and get the response object.
    QueryOperationResponse<Customer> response =
        context.Customers.Execute() as QueryOperationResponse<Customer>;

    // With a paged response from the service, use a do...while loop
    // to enumerate the results before getting the next link.
    do
    {
        // Write the page number.
        Console.WriteLine("Page {0}:", pageCount++);

        // If nextLink is not null, then there is a new page to load.
        if (token != null)
        {
            // Load the new page from the next link URI.
            response = context.Execute<Customer>(token)
                as QueryOperationResponse<Customer>;
        }

        // Enumerate the customers in the response.
        foreach (Customer customer in response)
        {
            Console.WriteLine("\tCustomer Name: {0}", customer.CompanyName);
        }
    }

    // Get the next link, and continue while there is a next link.
    while ((token = response.GetContinuation()) != null);
}
catch (DataServiceQueryException ex)
{
    throw new ApplicationException(
        "An error occurred during query execution.", ex);
}
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
Dim token As DataServiceQueryContinuation(Of Customer) = Nothing
Dim pageCount = 0

Try
    ' Execute the query for all customers and get the response object.
    Dim response As QueryOperationResponse(Of Customer) = _
        CType(context.Customers.Execute(), QueryOperationResponse(Of Customer))

    ' With a paged response from the service, use a do...while loop 
    ' to enumerate the results before getting the next link.
    Do
        ' Write the page number.
        Console.WriteLine("Page {0}:", pageCount + 1)

        ' If nextLink is not null, then there is a new page to load.
        If token IsNot Nothing Then
            ' Load the new page from the next link URI.
            response = CType(context.Execute(Of Customer)(token),  _
            QueryOperationResponse(Of Customer))
        End If

        ' Enumerate the customers in the response.
        For Each customer As Customer In response
            Console.WriteLine(vbTab & "Customer Name: {0}", customer.CompanyName)
        Next

        ' Get the next link, and continue while there is a next link.
        token = response.GetContinuation()
    Loop While token IsNot Nothing
Catch ex As DataServiceQueryException
    Throw New ApplicationException( _
            "An error occurred during query execution.", ex)
End Try

Комментарии

Метод Execute используется для запроса службы данных с помощью URI. Этот метод создает запрос HTTP GET к службе данных. Указанный URI запроса может быть абсолютным или относительным.

Если requestUri является абсолютным, этот метод проверяет, указывает ли URI на ту же службу данных, которая указана при создании DataServiceContext. Если requestUri является относительным, этот метод удаляет все начальные символы косой черты и присоединяет requestUri к адресу, предоставленному при создании DataServiceContext. Символ косой черты присоединяется после передачи URI в конструктор DataServiceContext, если ни одного из них еще нет.

Когда этот метод возвращает результат, все HTTP-ответы для запроса уже считаны из сетевого потока, но ответы еще не будут обработаны. Определение идентичности или материализация объектов не происходит. Определение идентичности или полная материализация объектов не выполняется для указанной сущности в ответе до выполнения перечисления.

См. также раздел

Применяется к