Condividi tramite


Procedura: eseguire query sul servizio dati (WCF Data Services)

WCF Data Services consente di eseguire query su un servizio dati da un'applicazione client basata su Framework .NET utilizzando le classi del servizio dati client generate. È possibile eseguire query utilizzando uno dei metodi seguenti:

  • Mediante l'esecuzione di una query LINQ sull'oggetto DataServiceQuery denominato ottenuto dall'oggetto DataServiceContext generato dallo strumento Add Data Service Reference

  • In modo implicito, mediante enumerazione dell'oggetto DataServiceQuery denominato ottenuto dall'oggetto DataServiceContext generato dallo strumento Add Data Service Reference

  • In modo esplicito, chiamando il metodo Execute su DataServiceQuery o il metodo BeginExecute per l'esecuzione asincrona.

Per ulteriori informazioni, vedere Esecuzione di query sul servizio dati (WCF Data Services).

Nell'esempio riportato in questo argomento vengono utilizzati il servizio dati Northwind di esempio e le classi del servizio dati client generate automaticamente. Questo servizio e le classi di dati client vengono creati al completamento della Guida rapida di WCF Data Services.

Esempio

Nell'esempio seguente viene illustrato come definire ed eseguire una query LINQ sul servizio dati Northwind per la restituzione di tutti le entità Customers.

' 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);
}

Nell'esempio seguente viene illustrato come utilizzare il contesto generato dallo strumento Add Data Service Reference per eseguire in modo implicito una query sul servizio dati Northwind per la restituzione di tutte le entità Customers. L'URI del set di entità Customers richiesto viene determinato automaticamente dal contesto. La query viene eseguita in modo implicito quando si verifica l'enumerazione.

' 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);
}

Nell'esempio seguente viene illustrato come utilizzare l'oggetto DataServiceContext per eseguire in modo esplicito una query sul servizio dati Northwind per la restituzione di tutte le entità Customers.

' 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);
}

Vedere anche

Attività

Procedura: aggiungere opzioni di query a una query del servizio dati (WCF Data Services)