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