
--建立表格--
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也不錯','丁小未')
建立完畢資料庫,然後添加兩條資料,友善我們後面進行調用。
在model檔案滑鼠右擊->添加->建立項目->資料->ADO.NET實體資料模型,重命名:MVCDemoModel,點選生成。
連接配接本地資料庫
選擇資料庫連接配接
填寫連接配接資訊
選擇某個表
點選生成,會發現Models檔案夾下生成了對應的Model實體對象模型,這就是EntityFramework的強大之處。
下面有一個news.cs檔案,打開會發現是實體對象模型
MVCDemoModel檔案中的MVCDemoEntities類是操作要顯示的實體對象模型的類
打開Controller檔案,然後添加如下讀取資料的代碼,進行一次編譯
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檔案夾下自動生成了對應的控制器視圖檔案,我們打開會發現生成了一個頁面,運作效果就如上面效果圖所示。
@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>
@Html.DisplayNameFor(model => model.CreateTime)
@Html.DisplayNameFor(model => model.Context)
@Html.DisplayNameFor(model => model.Author)
<th></th>
</tr>
@foreach (var item in Model) {
<td>
@Html.DisplayFor(modelItem => item.NewsTitle)
</td>
@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 })
</table>
效果圖

以上就是最簡單的MVC+EF資料讀取的最簡單的示例,微軟幫我們做了很多工作,但這種自動話生成的操作并不适合我們新手的學習,我們還是自己來手動建立空白檔案來實作這個展示的效果,也知道微軟做的這些操作的原理性的東西。
@model IEnumerable<MvcApplication1.Models.News> //進行一個頭檔案的引用
<h2>展示清單</h2>
<td>标題</td>
<td>釋出日期</td>
<td>釋出人</td>
@foreach (var item in Model)
{
<tr>
<td>@item.NewsTitle</td>
<td>@item.CreateTime</td>
<td>@item.Author</td>
</tr>
}
這種寫法跟之前的asp時代比較像,也跟現在.net時代下的模闆引擎的用法也比較類似!
上面的表格沒有樣式實在是太不好看了,簡單添加個樣式表,然後運作看看效果
<style type="text/css">
#tb{
#tb tr td{
border:1px solid #090808;
</style>
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實在友善多了。
本文轉蓬萊仙羽 51CTO部落格,原文連結:http://blog.51cto.com/dingxiaowei/1424693,如需轉載請自行聯系原作者