Tuesday, October 11, 2011
Creating Entity Framework Driven ASP.NET Application
Introduction
I have already written several posts on the Entity Framework where I described the power of this particular ORM tool. I also mentioned the book on the Entity Framework written by a Microsoft MVP - Joydip Kanjila. This time I will publish an extract from the book that shows how you can build ASP.NET application by using the Entity Framework and the EntityDataSource control. It can also give a glimpse of the Entity Framework is, if you have no experience in it.The tutorial covers the following topics:
- Creating the Entity Data Model by using a graphical utility built-in Visual Studio 2008 SP1
- Creating the Entity Data Model by using a command line utility
- Using the EntityDataSource ASP.NET control
- Displaying the data in a GridView
Creating an Entity Data Model.
You can create the ADO.NET Entity Data Model in one of the two ways:- Use the ADO.NET Entity Data Model Designer
- Use the command line Entity Data Model Designer called EdmGen.exe
Creating the Payroll Entity Data Model using the ADO.NET Entity Data Model Designer
Here are the tables of the 'Payroll' database that we will use to generate the data model:- Employee
- Designation
- Department
- Salary
- ProvidentFund
l>




If you select the Empty Data Model template and click on next, the following screen appears:



We will use a dot to specify the database server name. This implies that we will be using the database server of the localhost, which is the current system in use.

<connectionStrings>
<add name="PayrollEntities" connectionString="metadata=res:// *;
provider=System.Data.SqlClient;provider connection string="
Data Source=.;Initial Catalog=Payroll;User ID=sa;Password=joydip1@3;
MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>


Here is the output displayed in the Output Window while the Entity Data Model is being generated:

When you open the Payroll Entity Data Model that we just created in the designer view, it will appear as shown in the following figure:

In the next section, we will learn how we can create an Entity Data Model using the EdmGen.exe command line tool.
Creating the Payroll Data Model Using the EdmGen Tool
We will now take a look at how to create a data model using the Entity Data Model generation tool called EdmGen.The EdmGen.exe command line tool can be used to do one or more of the following:
- Generate the .cdsl, .msl, and .ssdl files as part of the Entity Data Model
- Generate object classes from a .csdl file
- Validate an Entity Data Model
Here is a list of the major options of the EdmGen.exe command line tool:
ttom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0">
Option | Description |
/help | Use this option to display help on all the possible options of this tool. The short form is /? |
/language:CSharp | Use this option to generate code using C# language |
/language:VB | Use this option to generate code using VB language |
/provider:<string> | Use this option to specify the name of the ADO.NET data provider that you would like to use. |
/connectionstring: <connection string> | Use this option to specify the connection string to be used to connect to the database |
/namespace:<string> | Use this option to specify the name of the namespace |
/mode:FullGeneration | Use this option to generate your CSDL, MSL, and SSDL objects from the database schema |
/mode:EntityClassGeneration | Use this option to generate your entity classes from a given CSDL file |
/mode:FromSsdlGeneration | Use this option to generate MSL, CSDL, and Entity Classes from a given SSDL file |
/mode:ValidateArtifacts | Use this option to validate the CSDL, SSDL, and MSL files |
/mode:ViewGeneration | Use this option to generate mapping views from the CSDL, SSDL, and MSL files edmgen /mode:fullgeneration /c:"Data Source=.;Initial Catalog=Payroll;User ID=sa;This will create a full ADO.NET Entity Data Model for our database. The output is shown in the following figure: ![]() ![]() EdmGen /mode:ValidateArtifacts /inssdl:Payroll.ssdl /inmsl:Payroll.msl /incsdl:Payroll.csdlWhen you execute the above command, the output will be similar to what is shown in the following figure: ![]() The section that follows discusses the new Entity Data Source control which was introduced as part of the Visual Studio.NET 2008 SP1 release. The ADO.NET Entity Data Source ControlData controls are those that can be bound to data from external data sources. These data sources may include databases, XML files, or even flat files. ASP.NET 2.0 introduced some data source controls with a powerful data binding technique so the need for writing lengthy code for binding data to data controls has been eliminated.In ASP.NET, the term Data Binding implies binding the controls to data retrieved from a data source and providing a read or write connectivity between these controls and the data that they are bound to. The Entity Data Source control is an example of a data control that is included as part of the Visual Studio 2008 SP1 release and can be used to bind data retrieved from an Entity Data Model to the data bound controls of ASP.NET. If you have installed Visual Studio 2008 SP1, you can see the EntityDataSource control listed in the Data section of your toolbox.If you cannot locate the EntityDataSource control in the toolbox, follow these steps:
![]() Implementing Our First Application Using the Entity FrameworkIn this section, we will learn how to use the Entity Data Model and the Entity Data Source Control to implement our first program using the Entity Framework. We will use a GridView control to display bound data.Refer to the solution we created earlier using the Entity Data Model Designer. Now, follow these steps:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeID"We are done! When you execute the application, your output should be similar to what is shown in the following figure: ![]() |