博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转][MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据
阅读量:7127 次
发布时间:2019-06-28

本文共 5119 字,大约阅读时间需要 17 分钟。

本文转自:

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

实现效果

操作步骤

1.创建数据库

 

[sql]
  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. --插入数据--  
  12. insert into dbo.News(NewsTitle,CreateTime,Context,Author)values('学习mvc4',GETDATE(),'我们一起来玩MVC4','丁小未')  
  13. 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文件,然后添加如下读取数据的代码,进行一次编译

 

[csharp]
  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
news = db.News.Where(u => u.id>0).ToList(); return View(news);}

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

 

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

 

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

Index

@Html.ActionLink("Create New", "Create")

@foreach (var item in Model) {
}
@Html.DisplayNameFor(model => model.NewsTitle) @Html.DisplayNameFor(model => model.CreateTime) @Html.DisplayNameFor(model => model.Context) @Html.DisplayNameFor(model => model.Author)
@Html.DisplayFor(modelItem => item.NewsTitle) @Html.DisplayFor(modelItem => item.CreateTime) @Html.DisplayFor(modelItem => item.Context) @Html.DisplayFor(modelItem => item.Author) @Html.ActionLink("Edit", "Edit", new { id=item.id }) | @Html.ActionLink("Details", "Details", new { id=item.id }) | @Html.ActionLink("Delete", "Delete", new { id=item.id })

效果图

 

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

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

 

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

展示列表

@foreach (var item in Model) {
}
标题 发布日期 发布人
@item.NewsTitle @item.CreateTime @item.Author

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

 

效果图

5.添加样式表

 

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

 

[csharp]
  1. <style type="text/css">  
  2.     #tb{  
  3.   
  4.     }  
  5.     #tb tr td{  
  6.         border:1px solid #090808;  
  7.     }  
  8. </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:             MyQQ:1213250243

Unity QQ群:375151422                                     cocos2dx QQ群:280818155

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

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

 

你可能感兴趣的文章
iOS在不支持横屏情况下,实现播放器全屏播放
查看>>
bzoj 4598: [Sdoi2016]模式字符串
查看>>
hadoop mapred和mapreduce包
查看>>
linux cut命令
查看>>
「LibreOJ NOI Round #1」验题
查看>>
linux fdisk 分区
查看>>
jqgrid显示一行的详情
查看>>
Fragment已经被added了导致的异常。
查看>>
小白学习appium之如何安装apk
查看>>
HDU - 1233 还是畅通工程
查看>>
算法笔记--莫比乌斯反演
查看>>
Codeforces 918C - The Monster
查看>>
POI生成Excel
查看>>
AC自动机 - 多模式串的匹配 --- HDU 3695 Computer Virus on Planet Pandora
查看>>
前端代码规范
查看>>
Mysql DDL介绍
查看>>
Journal List
查看>>
经典算法-链表(golang)
查看>>
淘宝双十一为什么会出现通道拥挤?
查看>>
history
查看>>