Procédure pas à pas : Création d’un Service de données WCF avec WPF et Entity FrameworkWalkthrough: Creating a WCF Data Service with WPF and Entity Framework

Cette procédure pas à pas montre comment créer un simple Service de données WCFWCF Data Service qui est hébergé dans un ASP.NETASP.NET application web et y accéder à partir d’une application Windows Forms.This walkthrough demonstrates how to create a simple Service de données WCFWCF Data Service that is hosted in an ASP.NETASP.NET web application and then access it from a Windows Forms application.

Dans cette procédure pas à pas vous :In this walkthrough you:

  • Créer une application web pour héberger un Service de données WCFWCF Data Service.Create a web application to host a Service de données WCFWCF Data Service.

  • Créer un Entity Data ModelEntity Data Model qui représente le Customers table dans la base de données Northwind.Create an Entity Data ModelEntity Data Model that represents the Customers table in the Northwind database.

  • Créer un Service de données WCFWCF Data Service.Create a Service de données WCFWCF Data Service.

  • Créer une application cliente et ajouter une référence au Service de données WCFWCF Data Service.Create a client application and add a reference to the Service de données WCFWCF Data Service.

  • Activer la liaison de données vers un service et générer l'interface utilisateur.Enable data binding to the service and generate the user interface.

  • Ajouter éventuellement des fonctions de filtrage à l'application.Optionally add filtering capabilities to the application.

PrérequisPrerequisites

Cette procédure pas à pas utilise SQL Server Express LocalDB et la base de données Northwind.This walkthrough uses SQL Server Express LocalDB and the Northwind sample database.

  1. Si vous n’avez pas SQL Server Express LocalDB, installez-le à partir de la page de téléchargement de SQL Server Express, ou via le le programme d’installation de Visual Studio.If you don't have SQL Server Express LocalDB, install it either from the SQL Server Express download page, or through the Visual Studio Installer. Dans le le programme d’installation de Visual Studio, vous pouvez installer SQL Server Express LocalDB dans le cadre de la stockage de données et de traitement charge de travail, ou comme un composant individuel.In the Visual Studio Installer, you can install SQL Server Express LocalDB as part of the Data storage and processing workload, or as an individual component.

  2. Installer la base de données Northwind en suivant ces étapes :Install the Northwind sample database by following these steps:

    1. Dans Visual Studio, ouvrez le Explorateur d’objets SQL Server fenêtre.In Visual Studio, open the SQL Server Object Explorer window. (Explorateur d’objets SQL Server est installé dans le cadre de la stockage de données et de traitement charge de travail dans Visual Studio Installer.) Développez le SQL Server nœud.(SQL Server Object Explorer is installed as part of the Data storage and processing workload in the Visual Studio Installer.) Expand the SQL Server node. Avec le bouton droit sur votre instance de base de données locale et sélectionnez nouvelle requête.Right-click on your LocalDB instance and select New Query.

      Une fenêtre d’éditeur de requête s’ouvre.A query editor window opens.

    2. Copie le script Transact-SQL de Northwind dans votre Presse-papiers.Copy the Northwind Transact-SQL script to your clipboard. Ce script T-SQL crée la base de données Northwind à partir de zéro et la remplit avec des données.This T-SQL script creates the Northwind database from scratch and populates it with data.

    3. Collez le script T-SQL dans l’éditeur de requête, puis choisissez le Execute bouton.Paste the T-SQL script into the query editor, and then choose the Execute button.

      Après une courte période, la requête est terminée en cours d’exécution et la base de données Northwind est créé.After a short time, the query finishes running and the Northwind database is created.

Création du serviceCreating the Service

Pour créer un Service de données WCFWCF Data Service, vous ajoutez un projet web, créez un Entity Data ModelEntity Data Model, puis créez le service à partir du modèle.To create a Service de données WCFWCF Data Service, you will add a web project, create an Entity Data ModelEntity Data Model, and then create the service from the model.

Dans la première étape, vous ajoutez un projet web pour héberger le service.In the first step, you add a web project to host the service.

Note

Il est possible que pour certains des éléments de l’interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. L’édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments.The Visual Studio edition that you have and the settings that you use, determine these elements. Pour plus d’informations, consultez Personnaliser l’IDE.For more information, see Personalize the IDE.

Pour créer le projet webTo create the web project

  1. Dans la barre de menus, choisissez Fichier > Nouveau > Projet.On the menu bar, choose File > New > Project.

  2. Dans le nouveau projet boîte de dialogue, développez le Visual Basic ou Visual C# et Web nœuds, puis choisissez le ASP. Application Web de NET modèle.In the New Project dialog box, expand the Visual Basic or Visual C# and Web nodes, and then choose the ASP.NET Web Application template.

  3. Dans le nom texte, entrez NorthwindWeb, puis choisissez le OK bouton.In the Name text box, enter NorthwindWeb, and then choose the OK button.

  4. Dans le nouveau projet ASP.NET boîte de dialogue le sélectionner un modèle , choisissez vide, puis choisissez le OK bouton.In the New ASP.NET Project dialog box, in the Select a template list, choose Empty, and then choose the OK button.

Dans l’étape suivante, vous allez créer un Entity Data ModelEntity Data Model qui représente le Customers table dans la base de données Northwind.In the next step, you create an Entity Data ModelEntity Data Model that represents the Customers table in the Northwind database.

Pour créer le modèle EDM (Entity Data Model)To create the Entity Data Model

  1. Dans la barre de menus, choisissez Projet > Ajouter un nouvel élément.On the menu bar, choose Project > Add New Item.

  2. Dans le ajouter un nouvel élément boîte de dialogue, sélectionnez le données nœud, puis choisissez le ADO.NET Entity Data Model élément.In the Add New Item dialog box, choose the Data node, and then choose the ADO.NET Entity Data Model item.

  3. Dans le nom texte, entrez NorthwindModel, puis choisissez le ajouter bouton.In the Name text box, enter NorthwindModel, and then choose the Add button.

    L'Assistant Entity Data Model s'affiche.The Entity Data Model Wizard appears.

  4. Dans l’Assistant Entity Data Model, sur le choisir le contenu du modèle page, choisissez le Entity Framework Designer à partir de la base de données d’élément, puis choisissez le suivant bouton.In the Entity Data Model Wizard, on the Choose Model Contents page, choose the EF Designer from database item, and then choose the Next button.

  5. Sur la page Choisir votre connexion de données , effectuez l'une des opérations suivantes :On the Choose Your Data Connection page, perform one of the following steps:

    • Si une connexion de données à l’exemple de base de données Northwind est disponible dans la liste déroulante, choisissez-la.If a data connection to the Northwind sample database is available in the drop-down list, choose it.

      - ou --or-

    • Choisissez le nouvelle connexion bouton pour configurer une connexion de données.Choose the New Connection button to configure a new data connection. Pour plus d’informations, consultez ajouter de nouvelles connexions.For more information, see Add new connections.

  6. Si la base de données requiert un mot de passe, choisissez le Oui, inclure les données sensibles dans la chaîne de connexion case d’option, puis choisissez le suivant bouton.If the database requires a password, choose the Yes, include sensitive data in the connection string option button, and then choose the Next button.

    Note

    Si une boîte de dialogue s’affiche, choisissez Oui pour enregistrer le fichier à votre projet.If a dialog box appears, choose Yes to save the file to your project.

  7. Sur le choisir votre version page, choisissez le Entity Framework 5.0 case d’option, puis choisissez le suivant bouton.On the Choose your version page, choose the Entity Framework 5.0 option button, and then choose the Next button.

    Note

    Pour pouvoir utiliser la dernière version d’Entity Framework 6 avec les Services WCF, vous devez installer le package NuGet du fournisseur Entity Framework WCF Data Services.In order to use the latest version of the Entity Framework 6 with WCF Services, you'll need to install the WCF Data Services Entity Framework Provider NuGet package. Consultez à l’aide de WCF Data Services 5.6.0 avec Entity Framework 6 +.See Using WCF Data Services 5.6.0 with Entity Framework 6+.

  8. Sur le choisir vos objets de base de données page, développez le Tables nœud, sélectionnez le clients case à cocher, puis choisissez le Terminer bouton.On the Choose Your Database Objects page, expand the Tables node, select the Customers check box, and then choose the Finish button.

    Le diagramme de modèle d’entité s’affiche et un NorthwindModel.edmx fichier est ajouté à votre projet.The entity model diagram displays, and a NorthwindModel.edmx file is added to your project.

Dans l’étape suivante, vous allez créer et tester le service de données.In the next step, you create and test the data service.

Pour créer le service de donnéesTo create the data service

  1. Dans la barre de menus, choisissez Projet > Ajouter un nouvel élément.On the menu bar, choose Project > Add New Item.

  2. Dans le ajouter un nouvel élément boîte de dialogue, sélectionnez le Web nœud, puis choisissez le WCF Data Service 5.6 élément.In the Add New Item dialog box, choose the Web node, and then choose the WCF Data Service 5.6 item.

  3. Dans le nom texte, entrez NorthwindCustomers, puis choisissez le ajouter bouton.In the Name text box, enter NorthwindCustomers, and then choose the Add button.

    Le NorthwindCustomers.svc fichier apparaît dans le éditeur de Code.The NorthwindCustomers.svc file appears in the Code Editor.

  4. Dans le éditeur de Code, localisez le premier TODO: commenter et remplacez le code par le code suivant :In the Code Editor, locate the first TODO: comment and replace the code with the following:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    
  5. Remplacez les commentaires dans le gestionnaire d'événements InitializeService par le code suivant :Replace the comments in the InitializeService event handler with the following code:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Dans la barre de menus, choisissez déboguer > démarrer sans débogage pour exécuter le service.On the menu bar, choose Debug > Start Without Debugging to run the service. Une fenêtre de navigateur s’ouvre et affiche le schéma XML pour le service.A browser window opens and the XML schema for the service displays.

  7. Dans le adresse barre, entrez Customers à la fin de l’URL pour NorthwindCustomers.svc, puis choisissez le entrée clé.In the Address bar, enter Customers at the end of the URL for NorthwindCustomers.svc, and then choose the Enter key.

    Une représentation XML des données dans le Customers table apparaît.An XML representation of the data in the Customers table appears.

    Note

    Dans certains cas, Internet Explorer interprétera par erreur les données comme un flux RSS.In some cases, Internet Explorer will misinterpret the data as an RSS feed. Vous devez vous assurer que l'option permettant d'afficher les flux RSS est désactivée.You must make sure that the option to display RSS feeds is disabled. Pour plus d’informations, consultez dépannage de références de service.For more information, see Troubleshooting service references.

  8. Fermez la fenêtre du navigateur.Close the browser window.

Dans les étapes suivantes, vous créez une application cliente de Windows Forms pour consommer le service.In the next steps, you create a Windows Forms client application to consume the service.

Création de l'application clienteCreating the Client Application

Pour créer l’application cliente, vous ajoutez un deuxième projet, ajoutez une référence de service au projet, configurez une source de données et créez une interface utilisateur pour afficher les données à partir du service.To create the client application, you add a second project, add a service reference to the project, configure a data source, and create a user interface to display the data from the service.

Dans la première étape, vous allez ajouter un projet Windows Forms à la solution et définissez-le comme projet de démarrage.In the first step, you add a Windows Forms project to the solution and set it as the startup project.

Pour créer l'application clienteTo create the client application

  1. Dans la barre de menus, choisissez Fichier, ajouter > nouveau projet.On the menu bar, choose File, Add > New Project.

  2. Dans le nouveau projet boîte de dialogue, développez le Visual Basic ou Visual C# nœud, choisissez le Windows nœud, puis choisissez Windows Forms Application.In the New Project dialog box, expand the Visual Basic or Visual C# node, choose the Windows node, and then choose Windows Forms Application.

  3. Dans la zone de texte Nom, entrez NorthwindClient, puis choisissez le bouton OK.In the Name text box, enter NorthwindClient, and then choose the OK button.

  4. Dans l’Explorateur de solutions, choisissez le NorthwindClient nœud du projet.In Solution Explorer, choose the NorthwindClient project node.

  5. Dans la barre de menus, choisissez projet, définir comme projet de démarrage.On the menu bar, choose Project, Set as StartUp Project.

Dans l’étape suivante, vous ajoutez une référence de service à le Service de données WCFWCF Data Service dans le projet web.In the next step, you add a service reference to the Service de données WCFWCF Data Service in the web project.

Pour ajouter une référence de service.To add a service reference

  1. Dans la barre de menus, choisissez projet > ajouter une référence de Service.On the menu bar, choose Project > Add Service Reference.

  2. Dans le ajouter une référence de Service boîte de dialogue, sélectionnez le Discover bouton.In the Add Service Reference dialog box, choose the Discover button.

    L’URL pour le service NorthwindCustomers s’affiche dans le adresse champ.The URL for the NorthwindCustomers service appears in the Address field.

  3. Choisissez le OK pour ajouter la référence de service.Choose the OK button to add the service reference.

Dans l’étape suivante, vous configurez une source de données pour permettre la liaison de données au service.In the next step, you configure a data source to enable data binding to the service.

Pour activer la liaison de données vers le serviceTo enable data binding to the service

  1. Dans la barre de menus, choisissez vue > Windows autres > des Sources de données.On the menu bar, choose View > Other Windows > Data Sources.

  2. Dans le des Sources de données fenêtre, choisissez le ajouter une nouvelle Source de données bouton.In the Data Sources window, choose the Add New Data Source button.

  3. Sur le choisir un Type de Source de données page de la Assistant de Configuration de Source de données, choisissez objet, puis choisissez le suivant bouton .On the Choose a Data Source Type page of the Data Source Configuration Wizard, choose Object, and then choose the Next button.

  4. Sur le sélectionner les objets de données page, développez le NorthwindClient nœud, puis développez le NorthwindClient.ServiceReference1 nœud.On the Select the Data Objects page, expand the NorthwindClient node, and then expand the NorthwindClient.ServiceReference1 node.

  5. Sélectionnez client case à cocher, puis choisissez le Terminer bouton.Select Customer check box, and then choose the Finish button.

Dans l’étape suivante, vous créez l’interface utilisateur qui affiche les données à partir du service.In the next step, you create the user interface that displays the data from the service.

Pour créer l'interface utilisateurTo create the user interface

  1. Dans le des Sources de données fenêtre, ouvrez le menu contextuel pour le clients nœud et choisissez copie.In the Data Sources window, open the shortcut menu for the Customers node and choose Copy.

  2. Dans le Form1.vb ou Form1.cs Concepteur de formulaires, ouvrez le menu contextuel et choisissez coller.In the Form1.vb or Form1.cs form designer, open the shortcut menu and choose Paste.

    Un contrôle DataGridView, un composant BindingSource et un composant BindingNavigator sont ajoutés au formulaire.A DataGridView control, a BindingSource component, and a BindingNavigator component are added to the form.

  3. Choisissez le CustomersDataGridView contrôle, puis, dans le propriétés fenêtre, définissez la Dock propriété remplir.Choose the CustomersDataGridView control, and then in the Properties window set the Dock property to Fill.

  4. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le Form1 nœud et choisissez afficher le Code pour ouvrir l’éditeur de Code, ajoutez le code suivant Imports ou Usinginstruction en haut du fichier :In Solution Explorer, open the shortcut menu for the Form1 node and choose View Code to open the Code Editor, and add the following Imports or Using statement at the top of the file:

    Imports NorthwindClient.ServiceReference1
    
    using NorthwindClient.ServiceReference1;
    
  5. Ajoutez le code suivant au gestionnaire d'événements Form1_Load :Add the following code to the Form1_Load event handler:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim proxy As New NorthwindEntities _
    (New Uri("http://localhost:53161/NorthwindCustomers.svc/"))
            Me.CustomersBindingSource.DataSource = proxy.Customers
        End Sub
    
    private void Form1_Load(object sender, EventArgs e)
    {
    NorthwindEntities proxy = new NorthwindEntities(new Uri("http://localhost:53161/NorthwindCustomers.svc/"));
    this.CustomersBindingSource.DataSource = proxy.Customers;
    }
    
  6. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le NorthwindCustomers.svc de fichier et choisissez afficher dans le navigateur.In Solution Explorer, open the shortcut menu for the NorthwindCustomers.svc file and choose View in Browser. Internet Explorer s’ouvre et affiche le schéma XML pour le service.Internet Explorer opens and the XML schema for the service displays.

  7. Copiez l'URL à partir de la barre d'adresses d'Internet Explorer.Copy the URL from the Internet Explorer address bar.

  8. Dans le code que vous avez ajouté à l'étape 4, sélectionnez http://localhost:53161/NorthwindCustomers.svc/ et remplacez-le par l'URL que vous venez de copier.In the code that you added in step 4, select http://localhost:53161/NorthwindCustomers.svc/ and replace it with the URL that you just copied.

  9. Dans la barre de menus, choisissez déboguer > démarrer le débogage pour exécuter l’application.On the menu bar, choose Debug > Start Debugging to run the application. Les informations client sont affichées.The customer information is shown.

    Vous disposez désormais d'une application opérationnelle qui affiche une liste de clients à partir du service NorthwindCustomers.You now have a working application that displays a list of customers from the NorthwindCustomers service. Si vous souhaitez exposer des données supplémentaires à travers le service, vous pouvez modifier l'Entity Data ModelEntity Data Model pour inclure des tables supplémentaires à partir de la base de données Northwind.If you want to expose additional data through the service, you can modify the Entity Data ModelEntity Data Model to include additional tables from the Northwind database.

Dans l’étape facultative suivante, vous allez apprendre à filtrer les données retournées par le service.In the next optional step, you learn how to filter the data that is returned by the service.

Ajout des fonctions de filtrageAdding Filtering Capabilities

Dans cette étape, vous personnalisez l’application à filtrer les données selon la ville du client.In this step, you customize the application to filter the data by the customer's city.

Pour ajouter le filtrage selon la villeTo add filtering by city

  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le Form1.vb ou Form1.cs nœud et choisissez ouvrir.In Solution Explorer, open the shortcut menu for the Form1.vb or Form1.cs node and choose Open.

  2. Ajouter un TextBox contrôle et un Button contrôle depuis la boîte à outils au formulaire.Add a TextBox control and a Button control from the Toolbox to the form.

  3. Ouvrez le menu contextuel pour le Button contrôler, choisissez afficher le Code, puis ajoutez le code suivant dans le Button1_Click Gestionnaire d’événements :Open the shortcut menu for the Button control, choose View Code, and then add the following code in the Button1_Click event handler:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim proxy As New northwindEntities _
    (New Uri("http://localhost:53161/NorthwindCustomers.svc"))
            Dim city As String = TextBox1.Text
    
            If city <> "" Then
                Me.CustomersBindingSource.DataSource = From c In _
             proxy.Customers Where c.City = city
            End If
    
        End Sub
    
    private void Button1_Click(object sender, EventArgs e)
    {
    ServiceReference1.northwindModel.northwindEntities proxy = new northwindEntities(new Uri("http://localhost:53161/NorthwindCustomers.svc"));
    string city = TextBox1.Text;
    
    if (!string.IsNullOrEmpty(city)) {
    this.CustomersBindingSource.DataSource = from c in proxy.Customers where c.City == city;
    }
    
    }
    
  4. Dans le code précédent, remplacez http://localhost:53161/NorthwindCustomers.svc par l'URL du gestionnaire d'événements Form1_Load.In the previous code, replace http://localhost:53161/NorthwindCustomers.svc with the URL from the Form1_Load event handler.

  5. Dans la barre de menus, choisissez déboguer > démarrer le débogage pour exécuter l’application.On the menu bar, choose Debug > Start Debugging to run the application.

  6. Dans la zone de texte, entrez Londres, puis choisissez le bouton.In the text box, enter London, and then choose the button. Seuls les clients de Londres sont affichés.Only the customers from London are displayed.

Voir aussiSee also