DataServiceQuery<TElement>.AddQueryOption(String, Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en ny DataServiceQuery<TElement> med frågealternativet i den URI som genereras av den returnerade frågan.
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)
Parametrar
- name
- String
Strängvärdet som innehåller namnet på frågesträngsalternativet som ska läggas till.
- value
- Object
Objektet som innehåller värdet för frågesträngsalternativet.
Returer
En ny fråga som innehåller det begärda frågealternativet som läggs till i URI:n för den angivna frågan.
Exempel
I följande exempel visas ett DataServiceQuery<TElement> som används med sekventiella AddQueryOption metodanrop för att endast returnera order med en fraktkostnad på mer än 30 USD och för att sortera resultatet efter leveransdatumet i fallande ordning.
// 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
I följande exempel visas hur du skapar en LINQ-fråga som motsvarar den tidigare frågan som använde 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
Kommentarer
Frågealternativen läggs till i den resulterande URI:n med hjälp av ?name=value&name2=value2... syntax där namnet mappas direkt till parametern name och value hämtas genom att anropa ToString på parametern value . Börjar name med $.
Syntaxen för icke-WCF Data Services börjar inte med $. Frågealternativ som inte är WCF Data Services kan läggas till med den här metoden. Det är lagligt att lägga till samma frågealternativ två gånger om alternativet inte är ett WCF Data Services-frågealternativ. Om ett frågealternativ läggs till som redan finns i den underliggande URI:n genereras ett undantag.