本文转自:https://blog.csdn.net/dingxiaowei2013/article/details/29405687

继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF5来实现数据的读取。

实现效果

操作步骤

1.创建数据库

  1. --创建表格--
  2. Create table News
  3. (
  4. id int identity(1,1) primary key,
  5. NewsTitle varchar(100)not null,
  6. CreateTime Datetime,
  7. Context text,
  8. Author varchar(10)
  9. )
  10. --插入数据--
  11. insert into dbo.News(NewsTitle,CreateTime,Context,Author)values('学习mvc4',GETDATE(),'我们一起来玩MVC4','丁小未')
  12. insert into dbo.News(NewsTitle,CreateTime,Context,Author)values('我会unity',GETDATE(),'跨平台的unity也不错','丁小未')
--创建表格--
Create table News
(
id int identity(1,1) primary key,
NewsTitle varchar(100)not null,
CreateTime Datetime,
Context text,
Author varchar(10)
) --插入数据--
insert into dbo.News(NewsTitle,CreateTime,Context,Author)values('学习mvc4',GETDATE(),'我们一起来玩MVC4','丁小未')
insert into dbo.News(NewsTitle,CreateTime,Context,Author)values('我会unity',GETDATE(),'跨平台的unity也不错','丁小未')

创建完毕数据库,然后添加两条数据,方便我们后面进行调用。

2.创建Model实体对象

在model文件鼠标右击->添加->新建项目->数据->ADO.NET实体数据模型,重命名:MVCDemoModel,点击生成。

连接本地数据库

选择数据库连接

填写连接信息

选择某个表

点击生成,会发现Models文件夹下生成了对应的Model实体对象模型,这就是EntityFramework的强大之处。

下面有一个news.cs文件,打开会发现是实体对象模型

MVCDemoModel文件中的MVCDemoEntities类是操作要显示的实体对象模型的类

3.在Controller中将数据库中的数据获取发送给前端显示

打开Controller文件,然后添加如下读取数据的代码,进行一次编译
  1. public ActionResult Index()
  2. {
  3. Models.MVCDemoEntities db = new Models.MVCDemoEntities();
  4. List<Models.News> news = db.News.Where(u => u.id>0).ToList();
  5. return View(news);
  6. }
public ActionResult Index()
{
Models.MVCDemoEntities db = new Models.MVCDemoEntities();
List<Models.News> news = db.News.Where(u => u.id>0).ToList();
return View(news);
}

编译成功后,继续上一节的添加视图

然后发现在Views文件夹下自动生成了对应的控制器视图文件,我们打开会发现生成了一个页面,运行效果就如上面效果图所示。

  1. @model IEnumerable<MvcApplication1.Models.News>
  2. @{
  3. ViewBag.Title = "Index";
  4. }
  5. <h2>Index</h2>
  6. <p>
  7. @Html.ActionLink("Create New", "Create")
  8. </p>
  9. <table>
  10. <tr>
  11. <th>
  12. @Html.DisplayNameFor(model => model.NewsTitle)
  13. </th>
  14. <th>
  15. @Html.DisplayNameFor(model => model.CreateTime)
  16. </th>
  17. <th>
  18. @Html.DisplayNameFor(model => model.Context)
  19. </th>
  20. <th>
  21. @Html.DisplayNameFor(model => model.Author)
  22. </th>
  23. <th></th>
  24. </tr>
  25. @foreach (var item in Model) {
  26. <tr>
  27. <td>
  28. @Html.DisplayFor(modelItem => item.NewsTitle)
  29. </td>
  30. <td>
  31. @Html.DisplayFor(modelItem => item.CreateTime)
  32. </td>
  33. <td>
  34. @Html.DisplayFor(modelItem => item.Context)
  35. </td>
  36. <td>
  37. @Html.DisplayFor(modelItem => item.Author)
  38. </td>
  39. <td>
  40. @Html.ActionLink("Edit", "Edit", new { id=item.id }) |
  41. @Html.ActionLink("Details", "Details", new { id=item.id }) |
  42. @Html.ActionLink("Delete", "Delete", new { id=item.id })
  43. </td>
  44. </tr>
  45. }
  46. </table>
@model IEnumerable<MvcApplication1.Models.News>

@{
ViewBag.Title = "Index";
} <h2>Index</h2> <p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.NewsTitle)
</th>
<th>
@Html.DisplayNameFor(model => model.CreateTime)
</th>
<th>
@Html.DisplayNameFor(model => model.Context)
</th>
<th>
@Html.DisplayNameFor(model => model.Author)
</th>
<th></th>
</tr> @foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.NewsTitle)
</td>
<td>
@Html.DisplayFor(modelItem => item.CreateTime)
</td>
<td>
@Html.DisplayFor(modelItem => item.Context)
</td>
<td>
@Html.DisplayFor(modelItem => item.Author)
</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>

效果图

以上就是最简单的MVC+EF数据读取的最简单的示例,微软帮我们做了很多工作,但这种自动话生成的操作并不适合我们新手的学习,我们还是自己来手动创建空白文件来实现这个展示的效果,也知道微软做的这些操作的原理性的东西。

4.自己动手写页面来展示自己想要展示的效果

  1. @model IEnumerable<MvcApplication1.Models.News>    //进行一个头文件的引用
  2. @{
  3. ViewBag.Title = "Index";
  4. }
  5. <h2>展示列表</h2>
  6. <table>
  7. <tr>
  8. <td>标题</td>
  9. <td>发布日期</td>
  10. <td>发布人</td>
  11. </tr>
  12. @foreach (var item in Model)
  13. {
  14. <tr>
  15. <td>@item.NewsTitle</td>
  16. <td>@item.CreateTime</td>
  17. <td>@item.Author</td>
  18. </tr>
  19. }
  20. </table>
@model IEnumerable<MvcApplication1.Models.News>    //进行一个头文件的引用
@{
ViewBag.Title = "Index";
} <h2>展示列表</h2>
<table> <tr>
<td>标题</td>
<td>发布日期</td>
<td>发布人</td>
</tr> @foreach (var item in Model)
{
<tr>
<td>@item.NewsTitle</td>
<td>@item.CreateTime</td>
<td>@item.Author</td>
</tr>
} </table>

这种写法跟之前的asp时代比较像,也跟现在.net时代下的模板引擎的用法也比较类似!

效果图

5.添加样式表

上面的表格没有样式实在是太不好看了,简单添加个样式表,然后运行看看效果

  1. <style type="text/css">
  2. #tb{
  3. }
  4. #tb tr td{
  5. border:1px solid #090808;
  6. }
  7. </style>
<style type="text/css">
#tb{ }
#tb tr td{
border:1px solid #090808;
}
</style>

6.Linq操作Model

Lambda可以操作Model,Linq同样也可以查询返回数据,这两种效果等同。

//Linq方式

var news =  from n in db.News select n;

//Lambda方式

List<Models.News> news = db.News.Where(u => u.id>0).ToList();

运行的结果是一样的,之前搞三层写的比较复杂,现在出了MVC实在方便多了。

欢迎关注我的围脖

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:375151422                                     cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

版权声明:本文为博主原创文章,未经博主允许不得转载。Unity交流群:159875734 https://blog.csdn.net/s10141303/article/details/29405687

[转][MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据的更多相关文章

  1. [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...

  2. ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    希望大家记住,这里讲的所有的知识点,不仅仅是了解了就可以了,还要会灵活用,一定要多思考,撑握其中的编程思想. 本文讲的是委托和事件,这两个词可能你早就耳熟能详,但你是否真正撑握了呢? 本系列讲的C#高 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为s ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)

    转自:http://www.cnblogs.com/ymnets/p/3424309.html 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空 ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(40)-精准在线人数统计实现-[过滤器+Cache] 系列目录 上次的探讨没有任何结果,我浏览了大量的文章 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享 注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可 ...

随机推荐

  1. Delphi XE 新功能试用:多种皮肤样式静、动态设置方法

    静态方式:1.新建VCL Forms Application:2.打开菜单Project - Application - Appearance:3.在Custom Styles中可选择所有默认带的皮肤 ...

  2. 为什么在UDP包中不能获取发包方的地址

    首先,我们要先了解一下UDP包的结构. 图1 UDP报文格式 从图1,我们可以看出,从UDP包中,我们可以获取的信息只有源端口和目的地端口.我们不能获取到源IP因为报文中没有源IP.真正包含IP地址的 ...

  3. [模板]最小割树(Gomory-Hu Tree)(luogu4897)

    给定一个\(n\)个点\(m\)条边的无向连通图,多次询问两点之间的最小割 两点间的最小割是这样定义的:原图的每条边有一个割断它的代价,你需要用最小的代价使得这两个点不连通 Input 第一行两个数\ ...

  4. [NOI2017]蔬菜(贪心)

    神仙题啊! 早上开了两个多小时,终于肝出来了,真香 我们考虑从第 \(10^5\) 天开始递推,先生成 \(p=10^5\) 的解,然后逐步推出 \(p-1,...,2,1\) 的解. 那怎么推出 \ ...

  5. 矩阵乘法在numpy/matlab/数学上的不同

    数学意义上的矩阵乘法 注意事项: 1.当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘. 2.矩阵C的行数等于矩阵A的行数,C的列数等于B的列数. 3.乘积C的第m行第n列的 ...

  6. Hbuilder用ajax连接阿里服务器上的servlet以及注意事项

    Hbuiler连接服务器上的servlet的步骤与连接本地项目中的servlet基本一致,详细内容参考上一片博客:https://www.cnblogs.com/ljysy/p/10294640.ht ...

  7. Window 上安装Node.js

    Window 上安装Node.js 1.Windows安装包下载地址 https://nodejs.org/en/ 2.下载好后,按照默认设置即可,安装路径可以更改 3.安装好后,检测PATH环境变量 ...

  8. 三:理解Page类的运行机制(例:在render方法中生成静态文件)

    我这里只写几个常用的事件1.OnPreInit:此事件后将加载个性化信息和主题2.OnInit:初始化页面中服务器控件的默认值但控件的状态没有加载,没有创建控件树3.OnPreLoad:控件完成状态和 ...

  9. React技术栈梳理

    一.react是什么? react是一个js框架,可以用它来编写html页面,使用react后我们可以完全抛弃html(只需要一个主index文件),而用纯js来编写页面: 二.为什么要使用react ...

  10. Spring Boot 解决方案 - JUnit 测试

    简单的 JUnit 项目 回顾一下创建并运行简单的 JUnit 测试项目,先添加 JUnit 依赖然后编写类似如下模板的测试类,使用 IDE 的话直接用插件运行就行, 使用 Maven 的话运行命令 ...