星空网 > 软件开发 > ASP.net

MVC5+EF6简单实例

 


 



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

参考出处:

http://www.cnblogs.com/slark/p/mvc-5-get-started-create-project.html

http://www.cnblogs.com/miro/p/4288184.html

http://www.cnblogs.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]

插入数据:

MVC5+EF6简单实例MVC5+EF6简单实例

二、新建MVC项目
MVC5+EF6简单实例MVC5+EF6简单实例
 
生成的解决方案的文件夹,对MVC的理解尚浅,不作过多的讲解,请多看看各位大侠们的博文,能受益匪浅。要真正理解框架的涵义,分层的优点,多动手,多感受,多思考。通过这几天的学习,感觉EF(Entity FrameWork)如它名字一样,是与Model层相关的,可生成实体对象。与Controll、View应该没直接联系,一开始容易和其它层混在一块,要分清概念和作用。(如理解不对乐意接受批评指正!)
MVC5+EF6简单实例
安装EF6:
MVC5+EF6简单实例MVC5+EF6简单实例
 

二、使用EF的Code First从原有数据库中生成Models

在Models文件夹上右键--添加--新建项
MVC5+EF6简单实例
 
数据--ADO.NET实体数据模型
MVC5+EF6简单实例
 
 如不能出现下图的选项,请下载安装Entity Framework 6.1.0 Tools for Visual Studio 2012 & 2013下载地址:http://www.cnblogs.com/dotnetmvc/p/3644980.html
MVC5+EF6简单实例
 选择新建连接
MVC5+EF6简单实例
 
 
MVC5+EF6简单实例
 点击更改,选择如下图
MVC5+EF6简单实例
 
MVC5+EF6简单实例
 
MVC5+EF6简单实例
 
 选择我们需要生成数据模型的两个表
MVC5+EF6简单实例
 
 完成后在Models文件夹下生成如下三个文件  MVC5+EF6简单实例其中ElementModel.cs为数据库连接上下文,也就是连接数据库用的,SysUser.cs和SysRole.cs为对应数据库表的数据实体模型。
 

 三、根据Model生成Controller及View

 在Controllers文件夹上右键--添加--控制器

MVC5+EF6简单实例
 
 输入控制器名称、选择模型类、数据库上下文(以SysUser模型为例)
 MVC5+EF6简单实例
 
 完成后在Controllers文件夹下生成SysUserController.cs,SysUserController的作用就是接收View层的action(动作),然后到相应的model层进行的数据交互,再把结果返回给View。
同样,在Views文件夹下也生成了SysUser文件夹,里面对应着五个视图页面的CShtml文件。右键Index.cshtml--在浏览器中查看,显示如下页面:
 MVC5+EF6简单实例
 

四、利用ViewModel显示多表联合查询

 刚刚我们通过controller把从一个表SysUser中查询的数据以SysUser(Model)实体的形式返回给Index(View)显示,而在实际工作中我们需要联合查询多个表中的数据并在View中显示。那个我们就需要借助于ViewModel,ViewModel是更接近于View的实体模型,也就是我们根据View中所要显示的数据的需要来建立实体模型。而Model更接近于数据库实体。下面我们就实现一个简单的两表联合查询的小例子:查询出SysUser表中的用户名及它所对应的角色名。
 
右键解决方案--添加--新建文件夹(ViewModel),然后右键ViewModel文件夹--添加--类
 
 MVC5+EF6简单实例
新建UserRole类,并添加实体如下:

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

右键Controllers文件夹添加控制类,此类继承于Controller类

MVC5+EF6简单实例


添加代码如下(用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 >    

<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>






原标题:MVC5+EF6简单实例

关键词:mvc

mvc
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

菲律宾专线海运:https://www.goluckyvip.com/tag/31402.html
菲律宾专线货运:https://www.goluckyvip.com/tag/31403.html
菲律宾专线快运:https://www.goluckyvip.com/tag/31404.html
菲律宾专线物流:https://www.goluckyvip.com/tag/31405.html
菲律宾专线小包:https://www.goluckyvip.com/tag/31406.html
狒狒说税务:https://www.goluckyvip.com/tag/31407.html
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
中国有哪些著名的酒店品牌。:https://www.vstour.cn/a/411242.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流