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.
WCF Data Services ermöglicht es Ihnen, mit den generierten Clientdatendienstklassen einen Datendienst aus einer .NET Framework-basierten Clientanwendung abzufragen. Für die Ausführung der Abfragen stehen folgende Methoden zur Verfügung:
Ausführen einer LINQ-Abfrage für die benannte DataServiceQuery-Instanz, die Sie aus dem DataServiceContext-Objekt abrufen, den das Tool Add Data Service Reference generiert.
Implizit durch Aufzählen über die benannte DataServiceQuery-Instanz, die Sie aus dem DataServiceContext-Objekt abrufen, den das Tool Add Data Service Reference generiert.
Explizit durch Aufrufen der Execute-Methode für die DataServiceQuery-Instanz oder der BeginExecute-Methode für die asynchrone Ausführung.
Weitere Informationen finden Sie unter Abfragen des Datendiensts (WCF Data Services).
Im Beispiel in diesem Thema werden der Northwind-Beispieldatendienst und automatisch generierte Clientdatendienstklassen verwendet. Dieser Dienst und die Clientdatenklassen werden erstellt, wenn Sie den WCF Data Services-Schnellstart ausführen.
Beispiel
Im folgenden Beispiel wird gezeigt, wie Sie eine LINQ-Abfrage definieren und ausführen, die alle Customers für den Northwind-Datendienst zurückgibt.
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
Try
' Define a LINQ query that returns all customers.
Dim allCustomers = From cust In context.Customers _
Select cust
' Enumerate over the query obtained from the context.
For Each customer As Customer In allCustomers
Console.WriteLine("Customer Name: {0}", customer.CompanyName)
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);
try
{
// Define a LINQ query that returns all customers.
var allCustomers = from cust in context.Customers
select cust;
// Enumerate over the query obtained from the context.
foreach (Customer customer in allCustomers)
{
Console.WriteLine("Customer Name: {0}", customer.CompanyName);
}
}
catch (DataServiceQueryException ex)
{
throw new ApplicationException(
"An error occurred during query execution.", ex);
}
Im folgenden Beispiel wird gezeigt, wie Sie den vom Tool Add Data Service Reference generierten Kontext verwenden, um eine Abfrage implizit auszuführen, die alle Customers für den Northwind-Datendienst zurückgibt. Der URI der angeforderten Customers-Entitätenmenge wird automatisch vom Kontext bestimmt. Die Abfrage wird implizit ausgeführt, wenn die Enumeration auftritt.
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
' Define a new query for Customers.
Dim query As DataServiceQuery(Of Customer) = context.Customers
Try
' Enumerate over the query result, which is executed implicitly.
For Each customer As Customer In query
Console.WriteLine("Customer Name: {0}", customer.CompanyName)
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 new query for Customers.
DataServiceQuery<Customer> query = context.Customers;
try
{
// Enumerate over the query result, which is executed implicitly.
foreach (Customer customer in query)
{
Console.WriteLine("Customer Name: {0}", customer.CompanyName);
}
}
catch (DataServiceQueryException ex)
{
throw new ApplicationException(
"An error occurred during query execution.", ex);
}
Im folgenden Beispiel wird gezeigt, wie Sie den DataServiceContext verwenden, um eine Abfrage explizit auszuführen, die alle Customers für den Northwind-Datendienst zurückgibt.
' Define a request URI that returns Customers.
Dim customersUri = New Uri(svcUri, "Northwind.svc/Customers")
' Create the DataServiceContext using the service URI.
Dim context = New DataServiceContext(svcUri)
Try
' Enumerate over the query result.
For Each customer As Customer In context.Execute(Of Customer)(customersUri)
Console.WriteLine("Customer Name: {0}", customer.CompanyName)
Next
Catch ex As DataServiceQueryException
Throw New ApplicationException( _
"An error occurred during query execution.", ex)
End Try
// Define a request URI that returns Customers.
Uri customersUri = new Uri(svcUri, "Northwind.svc/Customers");
// Create the DataServiceContext using the service URI.
DataServiceContext context = new DataServiceContext(svcUri);
try
{
// Enumerate over the query result.
foreach (Customer customer in context.Execute<Customer>(customersUri))
{
Console.WriteLine("Customer Name: {0}", customer.CompanyName);
}
}
catch (DataServiceQueryException ex)
{
throw new ApplicationException(
"An error occurred during query execution.", ex);
}
Siehe auch
Aufgaben
Gewusst wie: Hinzufügen von Abfrageoptionen zu einer Datendienstabfrage (WCF Data Services)