MVC与数据库传值—EF模型
- EF是什么
实体架构(Entity Framework)是微软以来ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句中解放出来。
优点:
支持多种数据库(Microsoft SQL Server、Oracle和DB2等);
强劲的映射引擎,能很好地支持存储过程;
提供Visual Studio集成工具,进行可视化操作;
能够与ASP.NET、WPF、WCF、WCF Data Services进行很好的集成。
-
创建Models
VS→解决方案资源管理器→Models→右键,添加新建项→左边选择数据,再选择ADO.NET实体数据模型,修改名称,添加→来自数据库的EF设计器,下一步→选择要连接的数据库/新建连接(服务器名称,数据库名称,测试连接),下一步→勾选所需要的表,以及下面两个选项,进行命名空间的命名如:
完成 -
运用传值
3.1在控制器里
添加命名空间,并选择运用传递数据方法(VIewData,ViewBag,TempData…)
using Demo_EF.Models;
//using 项目文件名.Models;
实例化,用对应的类创建对象
数据库的实例化放到方法之外,这样其他方法也能调用
3.2创建控制器对应的视图,
并在对应的视图里输出显示,从控制器传递过来的值(这里是Index.cshtml)
@*这里是注释,前端页面调用命名空间,且RAZOR引擎的代码不需要加分号*@
@using Demo_EF.Models
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
List<Job> j = ViewBag.data;
}
<h2>Index</h2>
@*这里是注释,把集合j的数据显示到table里*@
<table class="table table-bordered table-hover">
<thead>
<th>姓名</th>
<th>年龄</th>
<th>编号</th>
<th>职业</th>
</thead>
<tbody>
@foreach (var item in j)
{
<tr>
<td>@item.name</td>
<td>@item.age</td>
<td>@item.id</td>
<td>@item.Career</td>
</tr>
}
</tbody>
</table>
运行结果:
(记得修改默认路由)
数据库里的表:
完成