CRUD operation with Entity Framework Database First using ASP.NET MVC
File => New Project
Templates => Visual C# => ASP.NET MVC Web Application
Create Table :
CREATE
TABLE
[dbo].[Employee](
[Id]
[int] IDENTITY(1,1)
NOT
NULL,
[FirstName]
[nvarchar](50)
NOT
NULL,
[LatName]
[nvarchar](50)
NOT
NULL,
[MiddleName]
[nvarchar](50)
NULL,
[Address]
[nvarchar](300)
NULL,
[Salary]
[decimal](16,
2)
NULL,
[Email]
[nvarchar](50)
NULL,
CONSTRAINT
[PK_Employee] PRIMARY
KEY
CLUSTERED
(
[Id]
ASC
)WITH
(PAD_INDEX
=
OFF,
STATISTICS_NORECOMPUTE
=
OFF,
IGNORE_DUP_KEY
=
OFF,
ALLOW_ROW_LOCKS
=
ON,
ALLOW_PAGE_LOCKS
=
ON)
ON
[PRIMARY]
)
ON
[PRIMARY]
GO
============================================================================================
Right click on solution => Add New Item => Data => ADO.NET Entity Data Model
=> Name it EmployeeModel.edmx => Add => Generate from Database =>
next => New Connection => Provide Server details and select Database
=> Test Connection => Rename Entity Connection => EmployeeContext => next => Select your table
=> Rename Model name space => EmployeeModel => Finish.
Now our Model is Created.
Right click on Controllers => Add Controller =>EmployeeController => Add.
using
System;
using
System.Collections.Generic;
using
System.Data;
using
System.Linq;
using
System.Net;
using
System.Web;
using
System.Web.Mvc;
namespace
ASP.Net_MVC_Database_first_Registration.Controllers
{
public
class
EmployeeController
: Controller
{
//
//
GET: /Employee/
EmployeeContext
db = new
EmployeeContext();
public
ActionResult
Index()
{
return
View(db.Employees.ToList());
}
[HttpGet]
public
ActionResult
Create()
{
return
View();
}
[HttpPost]
public
ActionResult
Create(Employee
employee)
{
if
(ModelState.IsValid)
{
db.Employees.Add(employee);
db.SaveChanges();
return
RedirectToAction("Index");
}
return
View(employee);
}
public
ActionResult
Details(int?
id)
{
if
(id == null)
{
return
new
HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Employee
employee = db.Employees.Find(id);
if
(employee == null)
{
return
HttpNotFound();
}
return
View(employee);
}
public
ActionResult
Edit(int?
id)
{
if
(id == null)
{
return
new
HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Employee
employee = db.Employees.Find(id);
if
(employee == null)
{
return
HttpNotFound();
}
return
View(employee);
}
[HttpPost]
public
ActionResult
Edit(Employee
employee)
{
if
(ModelState.IsValid)
{
db.Entry(employee).State
= EntityState.Modified;
db.SaveChanges();
return
RedirectToAction("Index");
}
return
View(employee);
}
public
ActionResult
Delete(int?
id)
{
if
(id == null)
{
return
new
HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Employee
employee = db.Employees.Find(id);
if
(employee == null)
{
return
HttpNotFound();
}
return
View(employee);
}
[HttpPost,
ActionName("Delete")]
[ValidateAntiForgeryToken]
public
ActionResult
DeleteConfirmed(int
id)
{
Employee
employee = db.Employees.Find(id);
db.Employees.Remove(employee);
db.SaveChanges();
return
RedirectToAction("Index");
}
protected
override
void
Dispose(bool
disposing)
{
if
(disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
}
===============================================================================================
@model
IEnumerable<ASP.Net_MVC_Database_first_Registration.Employee>
@{
ViewBag.Title
= "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create
New",
"Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model
=> model.FirstName)
</th>
<th>
@Html.DisplayNameFor(model
=> model.LatName)
</th>
<th>
@Html.DisplayNameFor(model
=> model.MiddleName)
</th>
<th>
@Html.DisplayNameFor(model
=> model.Address)
</th>
<th>
@Html.DisplayNameFor(model
=> model.Salary)
</th>
<th>
@Html.DisplayNameFor(model
=> model.Email)
</th>
<th></th>
</tr>
@foreach
(var
item in
Model) {
<tr>
<td>
@Html.DisplayFor(modelItem
=> item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.LatName)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.MiddleName)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.Address)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.Salary)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.Email)
</td>
<td>
@Html.ActionLink("Edit",
"Edit",
new
{ id=item.Id }) |
@Html.ActionLink("Details",
"Details",
new
{ id=item.Id }) |
@Html.ActionLink("Delete",
"Delete",
new
{ id=item.Id })
</td>
</tr>
}
</table>
@model
ASP.Net_MVC_Database_first_Registration.Employee
@{
ViewBag.Title
= "Create";
}
<h2>Create</h2>
@using
(Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Employee</legend>
<div
class="editor-label">
@Html.LabelFor(model
=> model.FirstName)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.FirstName)
@Html.ValidationMessageFor(model
=> model.FirstName)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.LatName)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.LatName)
@Html.ValidationMessageFor(model
=> model.LatName)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.MiddleName)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.MiddleName)
@Html.ValidationMessageFor(model
=> model.MiddleName)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.Address)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.Address)
@Html.ValidationMessageFor(model
=> model.Address)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.Salary)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.Salary)
@Html.ValidationMessageFor(model
=> model.Salary)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.Email)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.Email)
@Html.ValidationMessageFor(model
=> model.Email)
</div>
<p>
<input
type="submit"
value="Create"
/>
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back
to List",
"Index")
</div>
@section
Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
@model
ASP.Net_MVC_Database_first_Registration.Employee
@{
ViewBag.Title
= "Details";
}
<h2>Details</h2>
<fieldset>
<legend>Employee</legend>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.FirstName)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.FirstName)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.LatName)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.LatName)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.MiddleName)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.MiddleName)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.Address)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.Address)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.Salary)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.Salary)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.Email)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.Email)
</div>
</fieldset>
<p>
@Html.ActionLink("Edit",
"Edit",
new
{ id=Model.Id }) |
@Html.ActionLink("Back
to List",
"Index")
</p>
@model
ASP.Net_MVC_Database_first_Registration.Employee
@{
ViewBag.Title
= "Edit";
}
<h2>Edit</h2>
@using
(Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Employee</legend>
@Html.HiddenFor(model
=> model.Id)
<div
class="editor-label">
@Html.LabelFor(model
=> model.FirstName)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.FirstName)
@Html.ValidationMessageFor(model
=> model.FirstName)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.LatName)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.LatName)
@Html.ValidationMessageFor(model
=> model.LatName)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.MiddleName)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.MiddleName)
@Html.ValidationMessageFor(model
=> model.MiddleName)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.Address)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.Address)
@Html.ValidationMessageFor(model
=> model.Address)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.Salary)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.Salary)
@Html.ValidationMessageFor(model
=> model.Salary)
</div>
<div
class="editor-label">
@Html.LabelFor(model
=> model.Email)
</div>
<div
class="editor-field">
@Html.EditorFor(model
=> model.Email)
@Html.ValidationMessageFor(model
=> model.Email)
</div>
<p>
<input
type="submit"
value="Save"
/>
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back
to List",
"Index")
</div>
@section
Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
@model
ASP.Net_MVC_Database_first_Registration.Employee
@{
ViewBag.Title
= "Delete";
}
<h2>Delete</h2>
<h3>Are
you sure you want to delete this?</h3>
<fieldset>
<legend>Employee</legend>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.FirstName)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.FirstName)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.LatName)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.LatName)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.MiddleName)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.MiddleName)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.Address)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.Address)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.Salary)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.Salary)
</div>
<div
class="display-label">
@Html.DisplayNameFor(model
=> model.Email)
</div>
<div
class="display-field">
@Html.DisplayFor(model
=> model.Email)
</div>
</fieldset>
@using
(Html.BeginForm()) {
@Html.AntiForgeryToken()
<p>
<input
type="submit"
value="Delete"
/>
|
@Html.ActionLink("Back
to List",
"Index")
</p>
}






No comments:
Post a Comment