Share via


DataServiceQuery<TElement>.AddQueryOption(String, Object) Méthode

Définition

Crée une DataServiceQuery<TElement> avec l'option de requête définie dans l'URI généré par la requête retournée.

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)

Paramètres

name
String

Valeur de chaîne qui contient le nom de l'option de chaîne de requête à ajouter.

value
Object

Objet qui contient la valeur de l'option de chaîne de requête.

Retours

Nouvelle requête qui inclut l’option de requête demandée ajoutée à l’URI de la requête fournie.

Exemples

L'exemple suivant affiche une DataServiceQuery<TElement> utilisée avec les appels de méthode AddQueryOption séquentiels pour retourner uniquement les ordres dont le coût de fret est supérieur à $30 et classer les résultats selon la date d'expédition dans l'ordre décroissant.

// 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

L'exemple suivant montre comment composer une requête LINQ qui est équivalente à la requête précédente qui a utilisé 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

Remarques

Les options de requête sont ajoutées à l’URI résultant à l’aide de ?name=value&name2=value2... syntaxe où le nom est mappé directement au name paramètre et le value est obtenu en appelant ToString sur le value paramètre. Le name commence par $.

La syntaxe non WCF Data Services ne commence pas par $. Vous pouvez ajouter des options de requête non WCF Data Services à l’aide de cette méthode. Il est légal d’ajouter deux fois la même option de requête si l’option n’est pas une option de requête WCF Data Services. Si une option de requête déjà présente dans l'URI sous-jacent est ajoutée, une exception est levée.

S’applique à