DataServiceQuery<TElement>.AddQueryOption(String, Object) Метод

Определение

Создает новый запрос DataServiceQuery<TElement> с параметром запроса, заданным в URI, который был сформирован возвращенным запросом.Creates a new DataServiceQuery<TElement> with the query option set in the URI generated by the returned query.

public:
 System::Data::Services::Client::DataServiceQuery<TElement> ^ AddQueryOption(System::String ^ name, System::Object ^ value);
public System.Data.Services.Client.DataServiceQuery<TElement> AddQueryOption (string name, object value);
member this.AddQueryOption : string * obj -> System.Data.Services.Client.DataServiceQuery<'Element>
Public Function AddQueryOption (name As String, value As Object) As DataServiceQuery(Of TElement)

Параметры

name
String

Строковое значение, содержащее имя добавляемого параметра строки запроса.The string value that contains the name of the query string option to add.

value
Object

Объект, содержащий значение параметра строки запроса.The object that contains the value of the query string option.

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

DataServiceQuery<TElement>

Новый запрос, включающий параметр запроса, добавленный к URI переданного запросаA new query that includes the requested query option appended to the URI of the supplied query

Примеры

Следующий пример иллюстрирует запрос DataServiceQuery<TElement> с последующими вызовами метода AddQueryOption, приводящими к возврату только заказов с ценой доставки, превышающей 30 долларов, упорядоченных по дате поставки в убывающем порядке.The following example shows a DataServiceQuery<TElement> that is used with sequential AddQueryOption method calls to only return orders with a freight cost of more than $30 and to order the results by the ship date in descending order.

// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);

// Define a query for orders with a Freight value greater than 30
// and that is ordered by the ship date, descending.
DataServiceQuery<Order> selectedOrders = context.Orders
    .AddQueryOption("$filter", "Freight gt 30")
    .AddQueryOption("$orderby", "OrderID desc");

try
{
    // Enumerate over the results of the query.
    foreach (Order order in selectedOrders)
    {
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}",
            order.OrderID, order.ShippedDate, order.Freight);
    }
}
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)

' Define a query for orders with a Freight value greater than 30
' and that is ordered by the ship date, descending.
Dim selectedOrders As DataServiceQuery(Of Order) = context.Orders _
.AddQueryOption("$filter", "Freight gt 30") _
.AddQueryOption("$orderby", "OrderID desc")

Try
    ' Enumerate over the results of the query.
    For Each order As Order In selectedOrders
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}", _
                order.OrderID, order.ShippedDate, order.Freight)
    Next
Catch ex As DataServiceQueryException
    Throw New ApplicationException( _
            "An error occurred during query execution.", ex)
End Try

Следующий пример показывает, как создать запрос LINQ, эквивалентный предыдущему запросу с использованием метода AddQueryOption.The following example shows how to compose a LINQ query that is equivalent to the previous query that used AddQueryOption.

// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);

// Define a query for orders with a Freight value greater than 30
// and that is ordered by the ship date, descending.
var selectedOrders = from o in context.Orders
                     where o.Freight > 30
                     orderby o.ShippedDate descending
                     select o;

try
{
    // Enumerate over the results of the query.
    foreach (Order order in selectedOrders)
    {
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}",
            order.OrderID, order.ShippedDate, order.Freight);
    }
}
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)

' Define a query for orders with a Freight value greater than 30
' and that is ordered by the ship date, descending.
Dim selectedOrders = From o In context.Orders _
        Where (o.Freight > 30) _
        Order By o.ShippedDate Descending _
        Select o

Try
    ' Enumerate over the results of the query.
    For Each order As Order In selectedOrders
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}", _
                order.OrderID, order.ShippedDate, order.Freight)
    Next
Catch ex As DataServiceQueryException
    Throw New ApplicationException( _
            "An error occurred during query execution.", ex)
End Try

Комментарии

Параметры запроса добавляются к результирующему универсальному коду ресурса (URI) с помощью ?name=value&name2=value2 ...The query options are added to the resultant URI using ?name=value&name2=value2 синтаксис, где имя сопоставляется непосредственно с name параметром, и value получается путем вызова метода ToString для value параметра.syntax where the name maps directly to the name parameter and the value is obtained by calling ToString on the value parameter. Имя name начинается с $.The name starts with $.

Синтаксис без службы данных WCF не начинается с $ .Non-WCF Data Services syntax does not start with $. С помощью этого метода можно добавлять параметры запроса, не относящиеся к службы данных WCF.Non-WCF Data Services query options can be added using this method. Можно дважды добавить один и тот же параметр запроса, если параметр не является параметром запроса службы данных WCF.It is legal to add the same query option twice if the option is not an WCF Data Services query option. Если добавляется параметр запроса, который уже имеется в базовом URI, вызывается исключение.If a query option is added that is already present in the underlying URI, an exception is thrown.

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