Partager via


Paramètres d'opération de service (ADO.NET Data Services Framework)

Les opérations de service prises en charge par ADO.NET Data Services Framework permettent à un service de données d'exposer une méthode sur le serveur qui est identifiée par un URi comme toutes les autres ressources ADO.NET Data Services, des paramètres peuvent être transmis à la méthode d'opération de service à l'aide de la chaîne de requête URI.

Des opérations de service sont créées en ajoutant des méthodes à la classe qui hérite de la classe System.Data.Services.DataService et qui représente le service de données lui-même.

Le code suivant crée une opération de service qui calcule tous les clients d'une ville spécifiée. Notez que la référence à this.CurrentDataSource donne accès à la session de la base de données.

public class Northwind : DataService<NorthwindEntities>
{
    [WebGet]
    public IQueryable<Customer> CustomersByCity(string city)
    {
        if (string.IsNullOrEmpty(city))
        {
            throw new ArgumentNullException("city",
                                   "You must provide a city name argument");
        }

        return this.CurrentDataSource.Customers.Where("it.City = @city",
                                  new ObjectParameter("city", city));
    }
}

Pour invoquer l'opération de service, le format URI est utilisé avec les paramètres de la chaîne de requête mappés directement sur les arguments de méthode. Par exemple, http://host/northwind.svc/CustomersByCity?city=London.

L'exemple de l'opération de service ci-dessus ne retourne pas directement les données demandées par l'appelant. L'opération de service retourne à la place un objet de requête de type IQueryable<T>. IQueryable<T> est pris en charge par la fonctionnalité LINQ (Language Integrated Query) de .NET Framework v3.5 SP1. En retournant une requête à la place des données, ADO.NET Data Services Framework peut toujours fournir des options telles que le filtrage, le tri et la pagination. Par exemple, la requête http://host/northwind.svc/CustomersByCity?city=London&$orderby=CompanyName compose la requête avec l'option de tri et retourne des résultats triés par CompanyName.

Pour contraindre l'opération de service pour que des opérateurs supplémentaires ne puissent être composés, retournez les résultats de l'opération à la place d'un objet de requête. Dans l'exemple ci-dessus, le type de retour de la méthode devra être IEnumerable<T> ou void si la méthode ne retourne pas de résultats.

Voir aussi

Concepts

Options de requêtes d'ADO.NET Data Services
Options de requête système d'ADO.NET Data Services

Autres ressources

Entity Data Model