Here we will learn How to access value
from database using entity framework in Asp.net MVC.
1.
Go to your SQL server Management system and
create a database and execute the following script.
Create Table Student
(
StudentID int identity primary key,
StudentName nvarchar(50),
Gender nvarchar(50),
SchoolName nvarchar(50)
)
GO
Insert into Student
values ('Munesh','Male','VIT')
Insert into Student
values ('Rahul','Male','ABC')
Insert into Student
values ('Reet','Female','XYZ')
Insert into Student
values ('Anshuman','Male','PQR')
|
2.
How a controller respond to a user request :- It Gets the data from modal a modal and transfer
this request to the view then view
render the data. Modal can be a entity or a business objects.
3.
Retrieving the data from database table
using entity framework ,1st we have to install entity framework
using nugget package manager for this go to Entity framework tutorial. Add a reference of entityFramework.
4.
Now add
a StudentContext.cs class to your modal folder
using System.Data.Entity;
public class StudentContext : DbContext
{ public DbSet<Student> _students {get; set;} } |
The
use of StudentContext class is for establishing the connection to our database
5.
Now add a connection string in Web.Config file
<connectionStrings>
<add name="StudentContext" connectionString="server=.; database=MVCApplication; integrated security=SSPI" providerName="System.Data.SqlClient"/> </connectionStrings> |
6.
Create a class As Student.cs in Modal
folder and MAP it with database
table, for mapping this employee modal class with database table we will use “Table” attribute. For this Attribute we
need DataAnnotations namespace.
using
System.ComponentModel.DataAnnotations.Schema;
namespace
MvcApplication1.Models
{
[Table("Student")]
public
class Student
{
public int
StudentId { get; set;
}
public string
StudentName { get; set;
}
public string
Gender { get; set;
}
public string
StudentSchool { get; set;
}
}
}
|
7.
Now we need to change in Controller class
for getting the value from database. For this
I added a Controller class with name Home Controller by default it contain a Index method.
1.
First in index method we need to call the “StudentContex”t class for making the
connection this StudentContext class it connected with Web config file.
2.
Here if we want data according to ID then
we need to pass ID to this function and
then we will retrieve student detail according to that id.
using System.Web.Mvc;
using
MvcApplication1.Models;
namespace
MvcApplication1.Controllers
{
public
class StudentController
: Controller
{
public ActionResult
StudentDetail(int id)
{
StudentContext _context = new StudentContext();
Student _student = _context._studentDb.Single(c =>
c.StudentId == id);
return View(_student);
}
}
}
|
8.
Now we will add a view for this method so
for that see the following code
@model MvcApplication1.Models.Student
@{
ViewBag.Title = "StudentDetail";
}
<h2>StudentDetail</h2>
<table style="font-family:Arial">
<tr>
<td>
Student ID:
</td>
<td>
@Model.StudentId
</td>
</tr>
<tr>
<td>
Name:
</td>
<td>
@Model.StudentName
</td>
</tr>
<tr>
<td>
Gender:
</td>
<td>
@Model.Gender
</td>
</tr>
<tr>
<td>
City:
</td>
<td>
@Model.SchoolName
</td>
</tr>
</table>
|
9.
Here we need to remember that in “Global.asax” file we will add a line of code
Database.SetInitializer<MvcApplication1.Models.StudentContext>(null);
|
Here “Database” is
stored in “using
System.Data.Entity” namespace. The use of this “SetInitializer” is that , It
creates table if we don’t have table in database which is given in Employee
modal class by us as an Table Attribute.
10.
Run Your application and give the path as “http://localhost/MvcApplication1/student/StudentDetail/1” or you can set Controller name and Action
method name in Route.Confing File you will get expected result from here means it show the data which is exists in database table on ID =1.
Note :- While Running if you get
error like “Login
failed for user 'IIS APPPOOL\DefaultAppPool'” then you refer this link
No comments:
Post a Comment