(
  from s in Base_SysMenus
  join r in Base_RoleRights on s.Menu_Id equals r.Menu_Id into temp
  from s_r in temp.DefaultIfEmpty()
 
  join u in Base_UserRoles on s_r.Roles_ID equals u.Roles_ID into temp2
  from t in temp2.DefaultIfEmpty()
  where s.Target=="Iframe" && t.User_ID=="48f3889c-af8d-401f-ada2-c383031af92d" && s.DeleteMark==1
  select new{Menu_Id= s.Menu_Id}
 ).Union(
  from s in Base_SysMenus
  join r in Base_UserGroupRights on s.Menu_Id equals r.Menu_Id into temp
  from s_r in temp.DefaultIfEmpty()
 
  join u in Base_UserInfoUserGroups on s_r.UserGroup_ID equals u.UserGroup_ID into temp2
  from t in temp2.DefaultIfEmpty()
  where s.Target=="Iframe" && t.User_ID=="48f3889c-af8d-401f-ada2-c383031af92d" && s.DeleteMark==1
  select new{Menu_Id= s.Menu_Id}
 ).Union(
  from s in Base_SysMenus
  join r in Base_UserRights on s.Menu_Id equals r.Menu_Id into temp
  from s_r in temp
  where s.Target=="Iframe" && s_r.User_ID=="48f3889c-af8d-401f-ada2-c383031af92d" && s.DeleteMark==1
  select new{Menu_Id= s.Menu_Id}
 )
 

linq 多个left join 和 sql union all -> linq union 方法的更多相关文章

  1. C# SQL优化 及 Linq 分页

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...

  2. Linq 中的 left join

    Linq 中的 left join 表A User: 表B UserType: Linq: from t in UserType join u in User on t.typeId equal u. ...

  3. sql语句or与union all的执行效率比较

    看到一篇文章是讲sql语句or与union all的执行效率比较的,以前没怎么注意这个问题,感觉文章写的不错,转来一看. 文章原链接:http://www.cunyoulu.com/zhuanti/q ...

  4. linux之SQL语句简明教程---UNION ALL

    UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起. UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复 ...

  5. 查看LINQ Expression編譯後的SQL語法(转)

    在用了LINQ語法之後的一個月,我幾乎把SQL語法全部拋到腦後了,不過 LINQ好用歸好用,但是實際上操作資料庫的還是SQL語法,如果不知道LINQ語法 編譯過後產生怎樣的SQL語法,一不小心效能就會 ...

  6. Sql中的并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)详解

    UNION 查询选修了180101号或180102号课程或二者都选修了的学生学号.课程号和成绩. (SELECT  学号, 课程号, 成绩 FROM   学习 WHERE   课程号='180101' ...

  7. Sql语句之并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)

    UNION 查询选修了180101号或180102号课程或二者都选修了的学生学号.课程号和成绩. (SELECT  学号, 课程号, 成绩 FROM   学习 WHERE   课程号='180101' ...

  8. 关于UNION ALL与 UNION 用法和区别

    (转自:http://www.cnblogs.com/EricaMIN1987_IT/archive/2011/01/20/1940188.html) UNION指令的目的是将两个SQL语句的结果合并 ...

  9. Ms SQLServer中的Union和Union All的使用方法和区别

    Ms SQLServer中的Union和Union All的使用方法和区别 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 ...

随机推荐

  1. Prof UIS相关

    Prof UIS 一款国外的VC++仿XP系统风格的免费界面库控件,含有近20个应用实例,每一个都可以顺利编译,用它生成的菜单类似OFFICE菜单一样,比起传统的窗体视觉舒服多了,VC编程的朋友对照文 ...

  2. [一位菜鸟的COCOS-2D编程之路]COCOS2D中得动作,特效和动画

    一,CCActionManager 管理所有节点动作的对象 来看看打飞机里面的一个onEnter 方法 - (void)onEnter { [super onEnter]; //一定要注意添加此方法, ...

  3. Qt4--加密日记本(子例化QMainWindow文本加密解密)

    近来刚学习Qt4编程,想找个实例练习练习,于是产生了一个想法,就是怎么样做一个文本加密,这样,自己保存的一些文档可以通过软件 生成加密文本,到时候要看的时候,通过自己的软件读取就可以.既然有想法了,那 ...

  4. 备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具

    SPSS.RapidMiner.KNIME以及Kettle四款工具都可以用来进行数据分析,只是彼此有各自的侧重点和有劣势.它们都可以逐步的定义数据分析过程,也同样都可以对数据进行ETL处理.笔者从自己 ...

  5. C#验证邮件

    public static bool IsEmail(string email) { String strExp = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+( ...

  6. tar linux 打包 压缩 gzip 命令说明

    参数:-c  :建立一个压缩档案的参数指令(create 的意思):-x  :解开一个压缩档案的参数指令!-t  :查看 tarfile 里面的档案!      特别注意,在参数的下达中, c/x/t ...

  7. 【Oracle】OCR的备份和恢复之导出导入

    使用导出导入进行OCR的备份和恢复: 在对集群做调整前.如:增删节点等操作前,应该对OCR进行一次备份.能够使用export备份到指定文件. 实验环境: OS:OEL5.6 RAC:10.2.0.1. ...

  8. 关闭对话框,OnClose和OnCancel

    我们知道,在对话框中,屏蔽ESC键自己主动退出能够选择重载OnCancel为哑函数的方法: void CXXXXDlg::OnCancel()      {         // TODO: Add ...

  9. iOS 如何做才安全--逆向工程 - Reveal、IDA、Hopper、https抓包 等

    http://www.cnblogs.com/dahe007/p/5546990.html

  10. android js 互调

    public class BoatsActivity extends Activity { Handler mHandler = new Handler();//处理消息的handler @Suppr ...