DataServiceQuery<TElement>.AddQueryOption(String, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein neues DataServiceQuery<TElement> Mit dem Abfrageoptionssatz im URI, der von der zurückgegebenen Abfrage generiert wird.
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)
Parameter
- name
- String
Der Zeichenfolgenwert, der den Namen der hinzuzufügenden Abfragezeichenfolgenoption enthält.
- value
- Object
Das Objekt, das den Wert der Abfragezeichenfolgenoption enthält.
Gibt zurück
Eine neue Abfrage, die die angeforderte Abfrageoption enthält, die an den URI der angegebenen Abfrage angefügt wird.
Beispiele
Das folgende Beispiel zeigt ein DataServiceQuery<TElement> , das mit sequenziellen AddQueryOption Methodenaufrufen verwendet wird, um nur Bestellungen mit frachtkosten von mehr als 30 $ zurückzugeben und die Ergebnisse nach dem Lieferdatum in absteigender Reihenfolge zu bestellen.
// 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
Das folgende Beispiel zeigt, wie Sie eine LINQ-Abfrage verfassen, die der vorherigen verwendeten Abfrage AddQueryOptionentspricht.
// 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
Hinweise
Die Abfrageoptionen werden dem resultierenden URI mithilfe von ?name=value&name2=value2... Syntax, bei der der Name dem Parameter direkt name zugeordnet ist und die value durch Aufrufen von ToString für den value Parameter abgerufen wird. Dies name beginnt mit $.
Die Syntax von Nicht-WCF Data Services beginnt nicht mit $. Abfrageoptionen ohne WCF Data Services können mithilfe dieser Methode hinzugefügt werden. Es ist zulässig, die gleiche Abfrageoption zweimal hinzuzufügen, wenn es sich bei der Option nicht um eine WCF Data Services-Abfrageoption handelt. Wenn eine Abfrageoption hinzugefügt wird, die bereits im zugrunde liegenden URI vorhanden ist, wird eine Ausnahme ausgelöst.