8.8.5.Using EDM to create Entity Framework based applications

Now that a Microsoft Entity Data Model has been created for the Northwind database, Entity Framework applications can be created to make use of it.

Entity Frameworks based ADO.NET Data Service

An ADO.Net Data Service for the MySQL tables can be created using the Entity Data Model created in the Creating EDM in Visual Studio 2008 section .

  1. Open the


    project created in the Creating EDM in Visual Studio 2008 section .

  2. Select the Project -> Add New Item menu option.



  3. The

    Add New Item

    dialog will appear. Choose the

    ADO.NET Data Service template

    . Give it the name


    , and click


    to create the ADO.Net Data Service.

    Figure8.421.Add New Item

    Add New Item

  4. In the newly created


    Data Service file, add the data source class name of


    (note this is the name set in the Creating EDM in Visual Studio 2008 section) as the


    name. Enable the access to the Data Service by adding the entry

    config.SetEntitySetAccessRule("*", EntitySetRights.All);

    in the



    // C#
    using System;
    using System.Web;
    using System.Collections.Generic;
    using System.ServiceModel.Web;
    using System.Linq;
    using System.Data.Services;
    namespace SimpleDataService
        public class Northwind: DataService<VirtuosoDemoEntities>
            public static void InitializeService(IDataServiceConfiguration  config)
                config.SetEntitySetAccessRule("*", EntitySetRights.All);



  5. To test the Data Service, simply hit


    within Visual Studio. This will start the development web server, run the Data Services server inside and load a Web browser page displaying the list of available tables/entities for the mysql Northwind database catalog.

    Figure8.423.Data Service test

    Data Service test

  6. To access a specific entity instance like the Customers table ALFKI record, use this convention: http://host/vdir/Virtuoso.svc/Customers('ALFKI') .




  1. Important

    - To view


    (the default format returned by an ADO.NET Data Service) in Internet Explorer, you must first ensure that

    Feed Reading View

    is turned


    . This can be done on the

    Content tab


    Tools in Internet Options


  2. If a Data Services entity instance URI page fails to load you can turn


    errors on by adding

    config.UseVerboseErrors = true;

    in the

    virtuoso.svc.cs InitializeService

    method to obtain more detailed information from the server as to why the page failed to load:

    public static void InitializeService(IDataServiceConfiguration config)
    config.UseVerboseErrors = true;
    config.SetEntitySetAccessRule("*", EntitySetRights.All);

Visual Studio Windows DataGrid Form Application

This section details the steps required to create a simple Visual Studio 2008 Windows Form application, with associated DataGridView control for displaying data in selected tables from the target database.

  1. Launch the Visual Studio 2008 SP1 IDE.

    Figure8.425.Visual Studio 2008 SP1 IDE

    Visual Studio 2008 SP1 IDE

  2. Create a Web Application project by going to the File menu in Visual Studio and choosing New Project .

    Figure8.426.Web Application

    Web Application

  3. When the New Project window appears, choose either

    Visual Basic or Visual C# as your programming language.

  4. Within the language category, click on Windows and select Windows Form Application from the right-hand panel.

  5. Choose a name for the project, for example VirtWindowsFormApplication , and click OK .

    Figure8.427.Web Application

    Web Application

  6. In the Toolbox , expand Data Controls , and drag the DataGridView control onto the form.



  7. Click on the little arrow in the top right of the DataGridView control. This loads the DataGridView Task menu.

    Figure8.429.DataGridView Task

    DataGridView Task

  8. Click on the Choose Data Source list box.

    Figure8.430.Choose Data Source

    Choose Data Source

  9. Click on the Add Project Data Source link to connect to a data source.

    Figure8.431.Add Project Data Source

    Add Project Data Source

  10. In the Data Source Configuration Wizard dialog Choose Data Source Type page select the Database data source type and click Next .

    Figure8.432.Data Source Type

    Data Source Type

  11. In the Data Source Configuration Wizard dialog Choose your Data Connection page, select the New Connection button

    Figure8.433.Data Source Configuration Wizard

    Data Source Configuration Wizard

  12. In the Choose Data Source dialog, select the OpenLink Virtuoso Data Source from the list and click Continue .

    Figure8.434.Data Source

    Data Source

  13. In the Add Connection dialog, specify the hostname, portno, username and password for the target Virtuoso Server and check the Save Password check box.

    Figure8.435.Connection Properties

    Connection Properties

  14. Select the Select Database From List radio button and choose the mysql database from the drop down list.

    Figure8.436.Add connection

    Add connection

  15. Press the Test Connection dialog to verify that the database is accessible.

    Figure8.437.Test Connection

    Test Connection

  16. Click OK to add the connection.

    Figure8.438.Test Connection

    Test Connection

  17. Leave the default connect string namemysqlConnectionString and click Next .



  18. From the list of available tables returned for the mysql database, select the Shippers table to be associated with the DataGridView control.

    Figure8.440.mysql database

    mysql database

  19. The columns names of the select table will be displayed in the DataGridView.



  20. Resize the Form and DataGridView to allow all columns to be visible, if possible.

    Figure8.442.Resize the Form and DataGridView

    Resize the Form and DataGridView

  21. To test the application, simply hit Ctrl+F5 within Visual Studio or select Start Debugging from the Debug menu.

    Figure8.443.Start Debugging

    Start Debugging

  22. The data from the Shippers table will be displayed in the DataGrid .



The task is now complete.