[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)讀取資料

來源:互聯網
上載者:User

標籤:mvc ef5

繼續上一節初始ASP.NET MVC4,繼續深入學習,感受了一下微軟的MVC4+EF5(EntityFramework5)架構的強大,能夠高效的開發出網站應用程式開發系統,下面就看一下如何用MVC4+EF5來實現資料的讀取。

實現效果


操作步驟1.建立資料庫

--建立表格--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檔案,然後添加如下讀取資料的代碼,進行一次編譯

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>        <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.自己動手寫頁面來展示自己想要展示的效果

@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.添加樣式表

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

<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

====================== 相互學習,共同進步 ===================


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.