Procédure pas à pas : Récupération et affichage des données d'un service de domaine
Cette rubrique explique comment appeler la méthode sur le contexte de domaine depuis une application Silverlight correspondant à la méthode de requête du service de domaine à laquelle vous voulez accéder, puis comment appliquer un filtrage supplémentaire sur les résultats de cette requête de façon à limiter le nombre d'entités à retourner ou à afficher.
Pour récupérer des données dans votre application Silverlight, vous devez appeler la méthode sur le contexte de domaine qui correspond à la méthode de requête du service du domaine que vous voulez utiliser. Par exemple, à une méthode de requête dans le service de domaine nommée GetProducts
correspondra une méthode dans le contexte de domaine nommée GetProductsQuery
. Dans votre application Silverlight, vous appelez GetProductsQuery
et cette méthode retourne un objet EntityQuery.
Dans votre application Silverlight, vous pouvez appliquer un filtrage supplémentaire sur la requête pour limiter les entités retournées. Une méthode de requête peut retourner chacun des enregistrements de la table des produits, mais vous pouvez ne souhaiter afficher que les produits dont le prix est inférieur à 100. Vous pouvez utiliser LINQ et un sous-ensemble d'opérateurs de requête LINQ pour modifier les résultats retournés par la requête. Vous trouverez ci-dessous les opérateurs de requête disponibles :
Where
OrderBy
ThenBy
Skip
Take
Après avoir appliqué un filtrage supplémentaire, vous transmettez l'objet EntityQuery à un paramètre dans la méthode Load pour exécuter la requête et obtenir les résultats.
Si la requête possède un objet QueryAttribute dont la propriété IsComposable a la valeur false, vous ne pouvez pas appliquer de filtrage supplémentaire sur la requête. En général, seules les requêtes qui retournent une entité unique ont un IsComposable de valeur false.
Vous pouvez lier les données à tout contrôle Silverlight qui présente des données. Le contrôle DataGrid peut présenter les données sous format tabulaire.
Cette procédure pas à pas décrit comment récupérer et afficher les données d'un service de domaine. Elle montre aussi comment utiliser l'opérateur de requête disponible pour appliquer un filtrage supplémentaire à une requête.
Configuration requise
Cette procédure pas à pas, ainsi que les autres procédures du même type présentées dans la documentation des Services RIA WCF, nécessite au préalable l'installation et la configuration correctes de plusieurs programmes, tels que Visual Studio 2010 et le Developer Runtime et SDK Silverlight, en plus des Services RIA WCF et du kit de ressources des Services RIA WCF. Ces procédures nécessitent également l'installation et la configuration de SQL Server 2008 R2 Express with Advanced Services et l'installation de la base de données AdventureWorks OLTP et LT.
Vous trouverez des instructions détaillées pour satisfaire chacune de ces conditions préalables dans les rubriques du nœud Conditions préalables pour les Services RIA WCF. Suivez ces instructions avant de poursuivre, pour être sûr de rencontrer le moins de problèmes possibles en effectuant ces procédures pas à pas des Services RIA .
Cette procédure pas à pas suppose que vous avez suivi les instructions de Procédure pas à pas : Création d'une solution de Services RIA et poursuit avec l'application créée à l'aide de ces procédures.
Pour récupérer et afficher les données d'un service de domaine
Ouvrez la solution RIAServicesExample obtenue en ayant suivi les directives de la rubrique Procédure pas à pas : Création d'une solution de Services RIA.
Dans votre application Silverlight, ouvrez la page code-behind de MainPage.xaml.
Créez une instance EntityQuery en appelant la méthode
GetCustomersQuery
.Utilisez les opérations de requête disponibles pour filtrer les clients.
Transmettez l'objet requête à la méthode Load et affectez la valeur de retour à l'objet LoadOperation.
Le code suivant indique comment récupérer les clients du service de domaine. Il filtre les clients dont le numéro de téléphone commence par 583 et les classe par ordre alphabétique en fonction de LastName. Les résultats s'affichent dans un DataGrid.
Partial Public Class MainPage Inherits UserControl Private _customerContext As New CustomerDomainContext Public Sub New() InitializeComponent() Dim query As EntityQuery(Of Customer) query = _ From c In Me._customerContext.GetCustomersQuery() _ Where c.Phone.StartsWith("583") _ Order By c.LastName Dim loadOp = Me._customerContext.Load(query) CustomerGrid.ItemsSource = loadOp.Entities End Sub End Class
public partial class MainPage : UserControl { private CustomerDomainContext _customerContext = new CustomerDomainContext(); public MainPage() { InitializeComponent(); EntityQuery<Customer> query = from c in _customerContext.GetCustomersQuery() where c.Phone.StartsWith("583") orderby c.LastName select c; LoadOperation<Customer> loadOp = this._customerContext.Load(query); CustomerGrid.ItemsSource = loadOp.Entities; } }
Voir aussi
Tâches
Procédure pas à pas : Création d'une solution de Services RIA
Procédure pas à pas : Ajout de méthodes de requête