Select and Insert Data With Entity State (Unchanged) Via EDF Framework

Introduction

Today, in this article let's play around with one of the interesting and most useful concepts in EDM Framework.

Select Data with Entity State (Unchanged) via EDF Framework

What is select data with Entity State (Unchanged) via EDM framework?

In simple terms "It provides flexibility to pull off the data while making sure the entity state is unchanged via EDM framework".

Step 1. Create a new web application.

Web Application

Step 2. Set up a new EDM framework with reverse engineering to the project.

Reverse engineering

Step 3. The complete code of WebForm1.aspx looks like this.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SelectDatawithEntityStateApp.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <style type="text/css">
        .grid {
            margin-top: 50px;
        }
    </style>
    <title></title>
</head>

<body>
    <form id="form1" runat="server">
        <center>
            <div>
                <table>
                    <tr>
                        <td colspan="2" align="center">
                            <asp:Label ID="Label1" runat="server" Text="Select Data with Entity State (Unchanged) via EDM Framework"
                                Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>
                        </td>
                    </tr>

                    <tr>
                        <td colspan="2" align="center">
                            <asp:Button ID="Button1" runat="server" Text="Select Data" Font-Names="Verdana" Width="213px"
                                BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />
                        </td>
                    </tr>
                    <tr>

                        <td colspan="2" align="center">
                            <asp:GridView ID="GridView1" runat="server" CssClass="grid" BackColor="LightGoldenrodYellow"
                                BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None">
                                <AlternatingRowStyle BackColor="PaleGoldenrod" />
                                <FooterStyle BackColor="Tan" />
                                <HeaderStyle BackColor="Tan" Font-Bold="True" />
                                <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />

                                <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
                                <SortedAscendingCellStyle BackColor="#FAFAE7" />
                                <SortedAscendingHeaderStyle BackColor="#DAC09E" />
                                <SortedDescendingCellStyle BackColor="#E1DB9C" />
                                <SortedDescendingHeaderStyle BackColor="#C2A47B" />
                            </asp:GridView>
                        </td>
                    </tr>

                    <tr>
                        <td colspan="2" align="center">
                            <asp:Label ID="Label3" runat="server" Font-Bold="true" Font-Size="Medium" Font-Names="Verdana"></asp:Label>
                        </td>
                    </tr>
                </table>
            </div>
        </center>
    </form>
</body>
</html>

Step 4. The complete code of WebForm1.aspx.cs looks like this.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SelectDatawithEntityStateApp.Models;
using System.Data;

namespace SelectDatawithEntityStateApp
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            tblEmployee selectQuery;
            using (var objContext = new CompanyContext())
            {
                selectQuery = (from r in objContext.tblEmployees select r).FirstOrDefault();
                var querylist = new List<tblEmployee>
                {
                    selectQuery
                };
                if (objContext.Entry(selectQuery).State == EntityState.Unchanged)
                {
                    GridView1.DataSource = querylist;
                    GridView1.DataBind();
                    objContext.SaveChanges();
                }
            }
        }
    }
}

Step 5. The output of the application looks like this.

Entity State

Step 6. The selected data output of the application looks like this.

Select Data

Insert Data with Entity State (Added) via EDF Framework

What is insert data with Entity State (Added) via EDM framework?

In simple terms "It provides flexibility to insert the data using entity state, added via EDM framework".

Step 1. Create a new web application.

New web

Step 2. Set up a new EDM framework with entity status to the project.

Entity status

Step 3. The complete code of WebForm1.aspx looks like this.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="InsertDatawithEntityStateApp.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <center>
                <table>
                    <tr>
                        <td>
                            <asp:Label ID="Label1" runat="server" Text="Insert Data with Entity State (Added) via EDM Framework"
                                Font-Bold="true"></asp:Label>
                        </td>
                    </tr>
                </table>
                <br />
                <br />
                <table>
                    <tr>
                        <td>
                            <asp:Label ID="Label2" runat="server" Text="Please Enter FirstName: " ForeColor="Brown"
                                Font-Bold="true" Font-Italic="true"></asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label ID="Label3" runat="server" Text="Please Enter LastName: " ForeColor="Brown"
                                Font-Bold="true" Font-Italic="true"></asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label ID="Label4" runat="server" Text="Please Enter Age: " ForeColor="Brown"
                                Font-Bold="true" Font-Italic="true"></asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <asp:Button ID="Button1" runat="server" Text="Insert Data" OnClick="Button1_Click"
                                BackColor="Orange" Font-Bold="true" /><br />
                            <br />
                        </td>
                    </tr>
                </table>
                <br />
                <br />
                <table>
                    <tr>
                        <td colspan="3">
                            <asp:Label ID="Label5" runat="server" Font-Bold="true"></asp:Label>
                        </td>
                    </tr>
                </table>
            </center>
        </div>
    </form>
</body>
</html>

Step 4. The complete code of WebForm1.aspx.cs looks like this.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using InsertDatawithEntityStateApp.Models;
using System.Data;

namespace InsertDatawithEntityStateApp
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text) || string.IsNullOrEmpty(TextBox3.Text))
            {
                Label5.Text = "Please Enter Some Values";
                Label5.ForeColor = System.Drawing.Color.Red;
            }
            else
            {
                var insertObj = new tblEmployee
                {
                    FirstName = TextBox1.Text,
                    LastName = TextBox2.Text,
                    Age = int.Parse(TextBox3.Text)
                };
                insertEmployee(insertObj);
                Label5.Text = "Data Successfully Inserted";
                Label5.ForeColor = System.Drawing.Color.Green;
                TextBox1.Text = string.Empty;
                TextBox2.Text = string.Empty;
                TextBox3.Text = string.Empty;
            }
        }

        private void insertEmployee(tblEmployee employee)
        {
            using (var objContext = new CompanyContext())
            {
                objContext.Entry(employee).State = EntityState.Added;
                objContext.SaveChanges();
            }
        }
    }
}

Step 5. The output of the application looks like this.

EDM Framework

Step 6. The inserted data output of the application looks like this.

Insert Data


Similar Articles
MVC Corporation
MVC Corporation is consulting and IT services based company.