Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erstellt eine neue DataServiceQuery<TElement> mit der Abfrageoption, die im von der zurückgegebenen Abfrage generierten URI festgelegt ist.
Namespace: System.Data.Services.Client
Assembly: Microsoft.Data.Services.Client (in Microsoft.Data.Services.Client.dll)
Syntax
'Declaration
Public Function AddQueryOption ( _
name As String, _
value As Object _
) As DataServiceQuery(Of TElement)
'Usage
Dim instance As DataServiceQuery
Dim name As String
Dim value As Object
Dim returnValue As DataServiceQuery(Of TElement)
returnValue = instance.AddQueryOption(name, _
value)
public DataServiceQuery<TElement> AddQueryOption(
string name,
Object value
)
public:
DataServiceQuery<TElement>^ AddQueryOption(
String^ name,
Object^ value
)
member AddQueryOption :
name:string *
value:Object -> DataServiceQuery<'TElement>
public function AddQueryOption(
name : String,
value : Object
) : DataServiceQuery<TElement>
Parameter
- name
Typ: System.String
Der Zeichenfolgenwert, der den Namen der hinzuzufügenden Abfragezeichenfolgenoption enthält.
- value
Typ: System.Object
Das Objekt, das den Wert der Abfragezeichenfolgenoption enthält.
Rückgabewert
Typ: System.Data.Services.Client.DataServiceQuery<TElement>
Eine neue Abfrage, die die angeforderte Abfrageoption enthält, die an den URI der angegebenen Abfrage angefügt wurde.
Hinweise
Dem resultierenden URI werden die Abfrageoptionen mit der ?name=value&name2=value2…-Syntax hinzugefügt, wobei dem Parameter name der Name direkt zugeordnet wird. value wird durch Aufrufen von ToString für den Parameter value ermittelt. Der name beginnt mit $.
Nicht-WCF Data Services-Syntax beginnt nicht mit $. Mit dieser Methode können Nicht-WCF Data Services-Abfrageoptionen hinzugefügt werden. Sie können die gleiche Abfrageoption zweimal hinzuzufügen, wenn die Option keine WCF Data Services-Abfrageoption ist. Wenn eine Abfrageoption hinzugefügt wird, die bereits im zu Grunde liegenden URI vorhanden ist, wird eine Ausnahme ausgelöst.
Die $select-Abfrageoption kann einem Abfrage-URI nicht mit der AddQueryOption(String, Object)-Methode hinzugefügt werden. Es wird empfohlen, die LINQ-Methode Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) zu verwenden, wobei der Client die Abfrageoption $select im Anforderungs-URI erstellt.
Beispiele
Im folgenden Beispiel wird eine DataServiceQuery<TElement> gezeigt, die mit sequenziellen AddQueryOption-Methodenaufrufen verwendet wird, um nur Bestellungen mit Frachtkosten von mehr als 30 Dollar zurückzugeben und die Ergebnisse nach dem Lieferdatum in absteigender Reihenfolge zu sortieren.
' 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
// 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);
}
Im folgenden Beispiel wird gezeigt, wie eine LINQ-Abfrage verfasst wird, die der vorherigen Abfrage entspricht, in der AddQueryOption verwendet wurde.
' 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
// 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);
}