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 apprendrez à :In this walkthrough you will:

  • 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 la table Customers 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 programme d’installation Visual Studio, SQL Server Express LocalDB peut être installé dans le cadre de la stockage de données et de traitement charge de travail, ou sous la forme d’un composant individuel.In the Visual Studio Installer, SQL Server Express LocalDB can be installed as part of the Data storage and processing workload, or as an individual component.

  2. Installer la base de données Northwind en procédant comme suit :Install the Northwind sample database by following these steps:

    1. Dans Visual Studio, ouvrez le l’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 le programme d’installation Visual Studio.) 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 le 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 et la base de données Northwind est créé.After a short time, the query finishes executing and the Northwind database is created.

Création du serviceCreating the Service

Pour créer un Service de données WCFWCF Data Service, vous devez ajouter un projet Web, créer un Entity Data ModelEntity Data Model, puis créer 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.

Au cours de la première étape, vous allez ajouter un projet Web pour héberger le service.In the first step, you will 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 Personnalisation de l'IDE.For more information, see Personalizing 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 la table Customers dans la base de données Northwind.In the next step, you will 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, choisissez 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 la EF 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 la 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 la 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 données 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'affichera et un fichier NorthwindModel.edmx sera ajouté à votre projet.The entity model diagram will be displayed, and a NorthwindModel.edmx file will be added to your project.

Dans l’étape suivante, vous créez et testez le service de données.In the next step, you will 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, choisissez 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 fichier NorthwindCustomers.svc s’affiche 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 les éléments suivants :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 le schéma XML pour le service s'affiche.A browser window opens and the XML schema for the service is displayed.

  7. Dans le adresse barre, entrez Customers à la fin de l’URL de 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 la table Customers s'affiche.An XML representation of the data in the Customers table is displayed.

    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.

Au cours des étapes suivantes, vous devrez créer une application cliente Windows Forms pour consommer le service.In the next steps, you will 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 devrez ajouter un deuxième projet, une référence de service au projet, vous configurerez une source de données et créerez une interface utilisateur pour afficher les données à partir du service.To create the client application, you will 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.

Au cours de la première étape, vous allez ajouter un projet Windows Forms à la solution et allez le définir comme projet de démarrage.In the first step, you will 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 et choisissez la Windows nœud, puis choisissez Application Windows Forms.In the New Project dialog box, expand the Visual Basic or Visual C# node and 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 le nœud de 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 allez ajouter une référence de service à le Service de données WCFWCF Data Service dans le projet Web.In the next step, you will 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, choisissez 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 allez configurer une source de données pour activer la liaison de données vers le service.In the next step, you will 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, autres fenêtres, 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 allez créer l’interface utilisateur qui affiche les données à partir du service.In the next step, you will create the user interface that will display 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 ensemble de la fenêtre 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 les importations suivantes ou à l’aide de la déclaration de la début 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 fichier NorthwindCustomers.svc 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 le schéma XML pour le service s'affiche.Internet Explorer opens and the XML schema for the service is displayed.

  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 s'affichent.The customer information is displayed.

    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.

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

Ajout des fonctions de filtrageAdding Filtering Capabilities

Au cours de cette étape, vous allez personnaliser l'application afin de filtrer les données selon la ville du client.In this step, you will 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, puis 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, and 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