亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

MVC5+EF6簡單實例---以原有SQLServer數據庫兩表聯合查詢為例

2019-11-17 02:02:49
字體:
來源:轉載
供稿:網友

MVC5+EF6簡單實例---以原有SQLServer數據庫兩表聯合查詢為例

Posted on 2015-03-24 15:42 自由開發者 閱讀(...) 評論(...) 編輯 收藏

有二三年沒寫代碼了,**內的工作就是這樣,容易廢人!看到園子里這么多大俠朝氣蓬勃的,我想也要學點東西并和大家分享,共同進步!快樂每一天,進步每一天!言歸正傳!

通過最近一段時間對MVC5、EF6的學習,可以簡單的做一個小例子,其中涉及到EF讀取已有數據庫中的數據,并對兩個表進行聯合查詢,顯示數據。

工具:VS.net2013、EF6、MVC5、SQLServer2008

參考出處:

http://www.49028c.com/slark/p/mvc-5-get-started-create-PRoject.html

http://www.49028c.com/miro/p/4288184.html

http://www.49028c.com/dotnetmvc/p/3732029.html

一、準備工作

在SqlServer上創建數據庫:Element

模擬兩個表并插入數據:SysUser(用戶表)、SysRole(角色表)

CREATE TABLE [dbo].[SysUser]([ID] [int] IDENTITY(1,1) NOT NULL,[Name] [nchar](10) NOT NULL,[RoleNum] [nchar](10) NOT NULL) ON [PRIMARY]

CREATE TABLE [dbo].[SysRole]([ID] [int] IDENTITY(1,1) NOT NULL,[RoleName] [nchar](10) NOT NULL,[RoleNum] [nchar](10) NOT NULL) ON [PRIMARY]

插入數據:

二、新建MVC項目生成的解決方案的文件夾,對MVC的理解尚淺,不作過多的講解,請多看看各位大俠們的博文,能受益匪淺。要真正理解框架的涵義,分層的優點,多動手,多感受,多思考。通過這幾天的學習,感覺EF(Entity FrameWork)如它名字一樣,是與Model層相關的,可生成實體對象。與Controll、View應該沒直接聯系,一開始容易和其它層混在一塊,要分清概念和作用。(如理解不對樂意接受批評指正!)安裝EF6:

二、使用EF的Code First從原有數據庫中生成Models

在Models文件夾上右鍵--添加--新建項數據--ADO.NET實體數據模型如不能出現下圖的選項,請下載安裝Entity Framework 6.1.0 Tools for Visual Studio 2012 & 2013下載地址:http://www.49028c.com/dotnetmvc/p/3644980.html選擇新建連接點擊更改,選擇如下圖選擇我們需要生成數據模型的兩個表完成后在Models文件夾下生成如下三個文件 其中ElementModel.cs為數據庫連接上下文,也就是連接數據庫用的,SysUser.cs和SysRole.cs為對應數據庫表的數據實體模型。

三、根據Model生成Controller及View

在Controllers文件夾上右鍵--添加--控制器

輸入控制器名稱、選擇模型類、數據庫上下文(以SysUser模型為例)完成后在Controllers文件夾下生成SysUserController.cs,SysUserController的作用就是接收View層的action(動作),然后到相應的model層進行的數據交互,再把結果返回給View。同樣,在Views文件夾下也生成了SysUser文件夾,里面對應著五個視圖頁面的CShtml文件。右鍵Index.cshtml--在瀏覽器中查看,顯示如下頁面:

四、利用ViewModel顯示多表聯合查詢

剛剛我們通過controller把從一個表SysUser中查詢的數據以SysUser(Model)實體的形式返回給Index(View)顯示,而在實際工作中我們需要聯合查詢多個表中的數據并在View中顯示。那個我們就需要借助于ViewModel,ViewModel是更接近于View的實體模型,也就是我們根據View中所要顯示的數據的需要來建立實體模型。而Model更接近于數據庫實體。下面我們就實現一個簡單的兩表聯合查詢的小例子:查詢出SysUser表中的用戶名及它所對應的角色名。右鍵解決方案--添加--新建文件夾(ViewModel),然后右鍵ViewModel文件夾--添加--類新建UserRole類,并添加實體如下:

namespace MVCDemo.ViewModels{ public class UserRole { public string userName { get; set; } public string userRole { get; set; } }}

右鍵Controllers文件夾添加控制類,此類繼承于Controller類

添加代碼如下(用Linq to Entity兩表聯合查詢):

using System;

using System.Collections.Generic;

using System.Linq; using System.Web;

using System.Web.Mvc; using System.Data.Entity;

using MVCDemo.ViewModels;

using MVCDemo.Models;

namespace MVCDemo.Controllers

{

  public class UserRoleController : Controller

  {

    ElementModel db = new ElementModel();

   public ActionResult Index()

    {

      var userRoleList = from uu in db.SysUsers

        join ud in db.SysRoles on uu.RoleNum equals ud.RoleNum

        where uu.ID == 1

        select new UserRole {userName = uu.Name,userRole = ud.RoleName}

      return View(userRoleList);

    }

  }

}

右鍵Views文件夾,新建UserRole文件夾;右鍵UserRole文件夾,添加--帶有布局的MVC5視圖頁Index.cshtml,添加代碼如下:

@model IEnumerable<MVCDemo.ViewModels.UserRole>

@{

  Layout = "~/Views/Shared/_Layout.cshtml";

  }

<table class="table">

<tr>

   <th>

    @Html.DisplayNameFor(model=>model.userName)

</th>

<th>

@Html.DisplayNameFor(model => model.userRole)

</th>

<th></th>

</tr>

   @foreach (var item in Model)

{

<tr>

<td>

@Html.DisplayFor(modelItem => item.userName)

</td>

   <td>

@Html.DisplayFor(modelItem => item.userRole)

</td>

</tr>

}

</table>

運行生成的界面如下:

歡迎大家交流!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产99久久精品一区二区 夜夜躁日日躁| 国产欧美 在线欧美| 不卡伊人av在线播放| 丝袜美腿精品国产二区| 国产精品盗摄久久久| 日韩动漫免费观看电视剧高清| 中文字幕欧美日韩| 怡红院精品视频| 成人黄色影片在线| 久久久久久网站| 国产自产女人91一区在线观看| 久久激情视频久久| 欧美最猛性xxxxx(亚洲精品)| 欧美亚洲午夜视频在线观看| 亚洲欧美综合区自拍另类| 中文字幕欧美精品日韩中文字幕| 亚洲综合中文字幕在线观看| 欧美综合国产精品久久丁香| 久久人人爽亚洲精品天堂| 色综合久久天天综线观看| 日韩在线观看av| www日韩中文字幕在线看| 久久99视频免费| 国产精品免费电影| 国产a∨精品一区二区三区不卡| 亚洲精品电影网| 欧美尤物巨大精品爽| 国产一区深夜福利| 国产va免费精品高清在线| 久久国产精品网站| 琪琪第一精品导航| 国产精品久久久久久久久久免费| 亚洲欧美激情另类校园| 国产日韩视频在线观看| 国产又爽又黄的激情精品视频| 最近更新的2019中文字幕| 成人欧美一区二区三区黑人孕妇| 福利视频一区二区| 成人免费在线视频网站| 国产精品视频午夜| 中文字幕欧美日韩va免费视频| 亚洲免费一在线| 成人免费福利在线| 亚洲成年网站在线观看| 粗暴蹂躏中文一区二区三区| 国产成人精品av在线| 亚洲国产美女久久久久| 欧美中文字幕视频| 精品国内亚洲在观看18黄| 日韩亚洲欧美中文在线| 国产成人精品一区二区| 北条麻妃在线一区二区| 中国china体内裑精亚洲片| 日韩欧美在线播放| 国产精品久久精品| 精品国产网站地址| 欧美日韩精品国产| 中文字幕不卡在线视频极品| 欧美高清激情视频| 欧美一区深夜视频| 69久久夜色精品国产7777| 久久久久久12| 欧美老肥婆性猛交视频| 日韩中文字幕视频在线观看| 久久久久久av| 97成人超碰免| 欧美中文字幕视频| 国产精品wwwwww| 日韩精品极品视频| 国产精品美女主播在线观看纯欲| 欧美激情一二三| 欧美日韩xxxxx| 中文字幕亚洲情99在线| 性色av一区二区咪爱| 91亚洲永久免费精品| 欧美日韩国产中字| 欧美成人激情图片网| 亚洲男人第一网站| 91av视频在线| 亚洲成人中文字幕| 精品国产欧美成人夜夜嗨| 亚洲黄色在线观看| 亚洲剧情一区二区| 久久影视电视剧免费网站清宫辞电视| 日韩成人中文字幕| 亚洲偷欧美偷国内偷| 国产视频自拍一区| 狠狠综合久久av一区二区小说| 91免费人成网站在线观看18| 黑人精品xxx一区| 欧美激情亚洲精品| 日韩电影在线观看中文字幕| 久久精品精品电影网| 91免费福利视频| 亚洲免费精彩视频| 日韩视频免费在线| xvideos亚洲人网站| 亚洲精品网址在线观看| 亚洲香蕉在线观看| 亚洲精品国偷自产在线99热| 性欧美亚洲xxxx乳在线观看| 91av网站在线播放| 久久国产加勒比精品无码| 麻豆乱码国产一区二区三区| 亚洲欧美精品中文字幕在线| 亚洲色图色老头| 国产成人精品久久| 九九热这里只有精品免费看| 亚洲视频第一页| 久久精品99国产精品酒店日本| 最新国产成人av网站网址麻豆| 97人人模人人爽人人喊中文字| 国产精品一区二区三区毛片淫片| 国产成人a亚洲精品| 亚洲欧美日韩精品| 亚洲第一精品夜夜躁人人躁| 色偷偷av一区二区三区乱| 青青青国产精品一区二区| 91久久久久久久| 亚洲欧美精品伊人久久| 美乳少妇欧美精品| 日韩精品在线视频美女| 2020久久国产精品| 国产精品亚洲网站| 第一福利永久视频精品| 亚洲美女在线观看| 亚洲毛片一区二区| 一本一本久久a久久精品牛牛影视| 欧美俄罗斯性视频| 性夜试看影院91社区| 狠狠综合久久av一区二区小说| 亚洲最大成人在线| 成人黄色午夜影院| 久久精品夜夜夜夜夜久久| 美日韩丰满少妇在线观看| 成人精品在线视频| 奇米影视亚洲狠狠色| 国产精品网址在线| 国产精品色悠悠| 97超级碰在线看视频免费在线看| 欧美精品在线视频观看| 久久精品人人做人人爽| 亚洲天堂免费在线| 亚洲香蕉在线观看| 国产精品精品久久久| 欧美激情在线观看视频| 色噜噜狠狠狠综合曰曰曰88av| 精品人伦一区二区三区蜜桃免费| 欧美日韩激情视频| 国产精品视频99| 欧美第一黄网免费网站| 一道本无吗dⅴd在线播放一区| 欧美亚洲日本黄色| 日韩欧美亚洲范冰冰与中字| 一本色道久久88亚洲综合88| 国产精品mp4| 国产噜噜噜噜久久久久久久久| 亚洲国产第一页| 久久久久久国产三级电影| 国产精品欧美亚洲777777| 亚洲精品久久久久久久久久久久久| 538国产精品一区二区免费视频| 久久久久久久成人| 2019中文在线观看|