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.
What is deleted data with Entity State (Deleted) via the 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.
Step 2. Set up a new EDM framework with reverse engineering for the project.
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.tblEmployees where r.EmpId == empId select r).Single();
}
deleteEmployee(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.
Step 6. The deleted data output of the application looks like this.
Update Data with Entity State (Modified) via EDF Framework
What is updated 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.
Step 2. Set up a new EDM framework with entity status for the project.
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.
Step 6. The modified data output of the application looks like this.