天天看點

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

--建立表格--  

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也不錯','丁小未')  

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

建立完畢資料庫,然後添加兩條資料,友善我們後面進行調用。

在model檔案滑鼠右擊->添加->建立項目->資料->ADO.NET實體資料模型,重命名:MVCDemoModel,點選生成。

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

連接配接本地資料庫

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

選擇資料庫連接配接

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

填寫連接配接資訊

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟
[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

選擇某個表

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

點選生成,會發現Models檔案夾下生成了對應的Model實體對象模型,這就是EntityFramework的強大之處。

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

下面有一個news.cs檔案,打開會發現是實體對象模型

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

MVCDemoModel檔案中的MVCDemoEntities類是操作要顯示的實體對象模型的類

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

打開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);  

}  

編譯成功後,繼續上一節的添加視圖

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

然後發現在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>  

效果圖

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

以上就是最簡單的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時代下的模闆引擎的用法也比較類似!

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

上面的表格沒有樣式實在是太不好看了,簡單添加個樣式表,然後運作看看效果

<style type="text/css">  

    #tb{  

    #tb tr td{  

        border:1px solid #090808;  

</style>  

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料 實作效果 操作步驟

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,如需轉載請自行聯系原作者