MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例
http://www.cnblogs.com/lacey/p/6396639.html ? 工具: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]( CREATE TABLE [dbo].[SysRole]( 插入数据:
二、使用EF的Code First从原有数据库中生成Models在Models文件夹上右键--添加--新建项?三、根据Model生成Controller及View?在Controllers文件夹上右键--添加--控制器 四、利用ViewModel显示多表联合查询?刚刚我们通过controller把从一个表SysUser中查询的数据以SysUser(Model)实体的形式返回给Index(View)显示,而在实际工作中我们需要联合查询多个表中的数据并在View中显示。那个我们就需要借助于ViewModel,ViewModel是更接近于View的实体模型,也就是我们根据View中所要显示的数据的需要来建立实体模型。而Model更接近于数据库实体。下面我们就实现一个简单的两表联合查询的小例子:查询出SysUser表中的用户名及它所对应的角色名。 ? 右键解决方案--添加--新建文件夹(ViewModel),然后右键ViewModel文件夹--添加--类 ? ? namespace MVCDemo.ViewModels 右键Controllers文件夹添加控制类,此类继承于Controller类
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> 好文要顶? 关注我? 收藏该文?关注 - 1 粉丝 - 0 +加关注 0 0 ??上一篇: C#精髓 第四讲 GridView 72般绝技 ??下一篇: sql去掉换行符 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – 找出SQL Server 2005中哪个数据库使用了多少
- 数据库建议 – 即用型数据库模型示例
- SQLSERVER2012安装
- tsql – SQL_Latin1_General_CP1_CI_AS和SQL_Latin1_Genera
- sql-server-2005 – Sql Server 2005中的Time DataType
- sql – 为每种类型的用户将登录名和密码放在一个表或多个表
- sql查询表中根据某列排序的任意行语句
- sql-server – SQL Server十六进制数据类型
- sqlserver 2000 远程连接 服务器的解决方案
- 数据库设计 – 为什么单个主键比复合键更好?