关于linq的多表联查效果的实现:

后台多表查询  内连接:

SELECT
[Extent2].[partID] AS [partID],
[Extent1].[userName] AS [userName],
[Extent3].[partName] AS [partName]
FROM [dbo].[User] AS [Extent1]
INNER JOIN [dbo].[User_partB] AS [Extent2] ON [Extent1].[userGUID] = [Extent2].[userGUID]
INNER JOIN [dbo].[partB] AS [Extent3] ON [Extent2].[partID] = [Extent3].[partID]

数据库数据效果展示:

代码如下:

 1   var userListTest = (from u in db.Users
 2                                 join p in db.User_partB on u.userGUID
 3               equals p.userGUID
 4                                 join d in db.partBs on p.partID equals d.partID
 5                                 select new { name = u.userName, departName = d.partName });
 6             List<dynamic> oneList = new List<dynamic>();
 7             foreach (var one in userListTest.ToList())
 8             {
 9                 dynamic dyObject = new ExpandoObject();
10                 dyObject.userName = one.name;
11                 dyObject.departName = one.departName;
12                 oneList.Add(dyObject);
13             }
14             ViewBag.dyObject = oneList;
15             return View();

前台数据展现效果:

 1 <table>
 2     <tr><td>用户登录名</td><td>姓名</td><td>状态</td><td>角色</td><td>操作</td></tr>
 3     @{foreach (var one in ViewBag.dyObject)
 4     {
 5         <tr>
 6             @*<td>@one.userLoginName</td>*@
 7             <td>@one.userName</td>
 8             @*<td>@one.active==1?"启用":"禁用"</td>*@
 9             <td>@one.departName</td>
10             <td></td>
11         </tr>
12     }
13     }
14 </table>

linq  多表联查 外链接:

SELECT
1 AS [C1],
[Extent1].[userName] AS [userName],
[Extent3].[partName] AS [partName]
FROM [dbo].[User] AS [Extent1]
LEFT OUTER JOIN [dbo].[User_partB] AS [Extent2] ON [Extent1].[userGUID] = [Extent2].[userGUID]
LEFT OUTER JOIN [dbo].[partB] AS [Extent3] ON [Extent2].[partID] = [Extent3].[partID]

数据库数据展示效果:

代码如下:

 1  var userListTest = (from u in db.Users
 2                                 join p in db.User_partB on u.userGUID
 3               equals p.userGUID into temp
 4                                 from t in temp.DefaultIfEmpty()
 5                                 join d in db.partBs on t.partID equals d.partID
 6                                 into tempone
 7                                 from user in tempone.DefaultIfEmpty()
 8                                 select new { name = u.userName, departName = user.partName });
 9             List<dynamic> oneList = new List<dynamic>();
10             foreach (var one in userListTest.ToList())
11             {
12                 dynamic dyObject = new ExpandoObject();
13                 dyObject.userName = one.name;
14                 dyObject.departName = one.departName;
15                 oneList.Add(dyObject);
16             }
17             ViewBag.dyObject = oneList;
18             return View();

前台数据展示效果同上

上述过程中,遇到  延迟加载后的动态数据,TOList()之后,传递到前台后,在foreach循环时,无法通过对象.属性的形式,读取出来,报“OBJECT未定义该属性”,经过查找原因发现,该动态数据为internal类型,只能同一程序集内访问,找了若干方法,不太适用,当然,如果大家有好的建议,可以一起交流讨论,究于当前场景,我选择了ExpandoObject,来动态处理,linq的查询结果。

转载于:https://www.cnblogs.com/meiCode/p/5192018.html

MVC +EF+linq 多表联查相关推荐

  1. .NET MVC+ EF+LINQ 多表联查VIEW显示列表

    1.VIEW 页面显示代码 <link href="~/Content/bootstrap.css" rel="stylesheet" />< ...

  2. MVC+EF+Linq 实例

    天才第一步:创建数据库 创建数据库的代码: create table category( id int primary key, name nvarchar(20) )create table new ...

  3. .NET MVC+ EF+调用存储过程 多表联查以及VIEW列表显示

    直接上干活,至于网上的一大堆处理方式不予评论,做好自己的就是最好的,供大家不走弯路 1.view页面 <link href="~/Content/bootstrap.css" ...

  4. APS.NET MVC + EF (01)---Linq和Lambda表达式

    APS.NET MVC + EF (01)---Linq和Lambda表达式 1.1 Linq介绍 LINQ全称 Language Integrated Query(语言集成查询).为我们提供一种统一 ...

  5. html.action 访问分部视图,MVC+EF 随笔小计——分部视图(Partial View)及Html.Partial和Html.Action差异...

    Partial View指可以应用于View中以作为其中一部分的View的片段(类似于之前的user control), 可以像类一样,编写一次, 然后在其他View中被反复使用. 一般放在" ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

    ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MV ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)...

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  9. 【公开课视频】ASP.NET MVC+EF入门-20130315

    20130315 .Net MVC+EF 入门公开课 适合:.Net MVC入门者 一.内容概要: 1.MVC设计模式 Model 是指 要处理的业务代码和数据操作代码 View 视图 主要是指的 跟 ...

最新文章

  1. 第拾壹章學習 Lisp 3rd Edition, Winston Horn
  2. x86CPU 实模式 保护模式 傻傻分不清楚? 基于Xv6-OS 分析CR0 寄存器
  3. ubuntu安装php-curl拓展
  4. 设计模式之装饰者模式(一)
  5. go Template 使用{{ end -}}的坑
  6. java kafka 多线程消费
  7. Ant Design Pro 开启默认进入登录页
  8. Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
  9. shell time 计算
  10. 树莓派修改root密码
  11. 史上最全各种简历模板,自荐信模板和面试技巧
  12. optimizer.zero_grad()
  13. 在kile中为stm32移植FreeRTOS
  14. 击中击不中变换的作用理解
  15. Socket实战——Teardrop代码编程
  16. php 按比例裁剪图片,自定义裁剪图片大小,按照一定比例裁剪图片的软件
  17. spring cloud--微服务
  18. SQL同步主子表数据
  19. androidapp打开微信小程序
  20. 【数据库】02——关系模型是什么东东

热门文章

  1. SqlServer2000中作业无法删除的原因和解决办法
  2. 【杂题总结】洛谷-3959 宝藏
  3. angular--Observable总结
  4. 如何反编译.apk(注:CSDN上提供的资源过时了,都用不了)
  5. SQLSERVER2008--日志收缩 or 日志清理
  6. 开园第一篇献给找不回来的园子。。
  7. 让你的echo带颜色
  8. 对象失去焦点时自己动提交数据
  9. JAVA在线编译,无需环境变量
  10. python中利用itchat实现自动回复