Delete and Update Data With Entity State (Deleted) Via EDF Framework

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

Delete Data with Entity State (Deleted) via EDF Framework
 
Question: What is delete data with Entity State (Deleted) via EDM framework?
 
In simple terms "It provides flexibility to delete the data using entity state; deleted via EDM framework".
 
Step 1: Create a new web application

Delete-Data-with-Entity-State1.png

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

Delete-Data-with-Entity-State2.png

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DeleteDataEntityStateDeletedApp.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="Delete Data with Entity State (Deleted) via Entity Framework"

                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label2" runat="server" Text="Please Enter Employee Id" ForeColor="Brown"

                            Font-Bold="true" Font-Size="Medium" Font-Names="Verdana"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button1" runat="server" Text="Delete Data" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />

                    </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 DeleteDataEntityStateDeletedApp.Models;

using System.Data;

namespace DeleteDataEntityStateDeletedApp

{

    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))

            {

                Label3.Text = "Please Enter Some Values";

                Label3.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                tblEmployee deleteQuery;

                int empId = Convert.ToInt32(TextBox1.Text);

                using (var objContext = new CompanyContext())

                {

                    deleteQuery = (from r in objContext.tblEmployeeswhere r.EmpId == empIdselect r).Single();

                }

                eleteEmployee(deleteQuery);

                Label3.Text = "Data Deleted Successfully";

                Label3.ForeColor = System.Drawing.Color.Green;

                TextBox1.Text = string.Empty;

            }

        }

        private void deleteEmployee(tblEmployee employee)

        {

            using (var objContext = new CompanyContext())

            {

                objContext.Entry(employee).State = EntityState.Deleted;

                objContext.SaveChanges();

            }

        }

    }

}


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

Delete-Data-with-Entity-State3.png

Step 6: The deleted data output of the application looks like this:

Delete-Data-with-Entity-State4.png

Update Data with Entity State (Modified) via EDF Framework
 
Question: What is update data with Entity State (Modified) via EDM framework?
 
In simple terms "It provides flexibility to update the data using entity state; modified via EDM framework".
 
Step 1: Create a new web application

Update-Data-with-Entity-State1.png

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

Update-Data-with-Entity-State2.png

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="UpdateDataEntityStateModifiedApp.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">

    <center>

        <div>

            <table>

                <tr>

                    <td colspan="2">

                        <asp:Label ID="Label1" runat="server" Text="Update Data with Entity State - (Modified) via EDM Framework"

                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label6" runat="server" Text="Please Enter Employee Id" Font-Size="Large"

                            Font-Names="Verdana" Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label2" runat="server" Text="Please Enter FirstName" Font-Size="Large"

                            Font-Names="Verdana" 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" Font-Size="Large"

                            Font-Names="Verdana" 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" Font-Size="Large" Font-Names="Verdana"

                            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="Button2" runat="server" Text="Update Data" Font-Names="Verdana" Width="166px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button2_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Label ID="Label5" runat="server" Font-Bold="true" Font-Names="Verdana" ForeColor="Maroon"></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 UpdateDataEntityStateModifiedApp.Models;

namespace UpdateDataEntityStateModifiedApp

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button2_Click(object sender, EventArgs e)

        {

            if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text) || string.IsNullOrEmpty(TextBox3.Text) || string.IsNullOrEmpty(TextBox4.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                tblEmployee employeeQuery;

                using (var dbContext = new CompanyContext())

                {

                    int empId = Convert.ToInt32(TextBox4.Text);

                    employeeQuery = (from r in dbContext.tblEmployees where r.EmpId == empId select r).Single();

                }

                employeeQuery.FirstName = TextBox1.Text;

                employeeQuery.LastName = TextBox2.Text;

                employeeQuery.Age = int.Parse(TextBox3.Text);

                updateEmployee(employeeQuery);

                Label5.Text = "Data Updated Successfully";

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox1.Text = string.Empty;

                TextBox2.Text = string.Empty;

                TextBox3.Text = string.Empty;

                TextBox4.Text = string.Empty;

            }

        }

        private void updateEmployee(tblEmployee tblEmployee)

        {

            using (var objContext = new CompanyContext())

            {

                objContext.Entry(tblEmployee).State = System.Data.EntityState.Modified;

                objContext.SaveChanges();

            }

        }

    }

}


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


Update-Data-with-Entity-State3.png

Step 6: The modified data output of the application looks like this:


Update-Data-with-Entity-State4.png