Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq中正确的Join语句_C#_Asp.net_Linq_Linq To Sql - Fatal编程技术网

C# Linq中正确的Join语句

C# Linq中正确的Join语句,c#,asp.net,linq,linq-to-sql,C#,Asp.net,Linq,Linq To Sql,我一直在寻找我问题的答案,因为我是一个初学者,无法得到所有的答案,所以问我自己, 我有两个tables子菜单和AUTHORIZATION正在尝试放置联接,但不清楚是向左还是向右或其他方式,因为我对linq是新手 这是我到目前为止所做的 var _lststage = from sm in db.SUB_MENUs join a in db.AUTHORISATIONs on sm.SUB_MENU_ID equals a.SUB_MENU_ID into jo

我一直在寻找我问题的答案,因为我是一个初学者,无法得到所有的答案,所以问我自己, 我有两个tables子菜单AUTHORIZATION正在尝试放置联接,但不清楚是向左还是向右或其他方式,因为我对linq是新手

这是我到目前为止所做的

var _lststage = 
    from sm in db.SUB_MENUs
    join a in db.AUTHORISATIONs 
        on sm.SUB_MENU_ID equals a.SUB_MENU_ID into joined_autho 
    from jA in joined_autho.DefaultIfEmpty()
    where sm.MENU_ID.Equals(ViewState["MenuId"]) &&
          jA.Roleid Equals ddlroleid.Selectedvalue
    select new
    {
         sm.SUB_MENU_ID,
         sm.SUB_MENU_NAME,
         jA.checkbox,
    };
我想根据视图状态下的menuid从子菜单表中获取所有子菜单, 我需要根据角色id和子菜单id获取授权表中复选框的值,如果授权表中没有该角色id的值,则应返回默认的false值

希望我能很好地解释我的情况, 重复问题的可能性。。。
很抱歉。

您的查询甚至无法编译。在where条件下,second
等于
应该是方法调用:

 // instead of: jA.Roleid Equals ddlroleid.Selectedvalue
 jA.Roleid.Equals(ddlroleid.Selectedvalue)
另外,select语句的最后一行有不必要的逗号:

 // instead of: jA.checkbox,
 jA.checkbox

完整的查询应该如下所示:

from sm in db.SUB_MENUs
join a in db.AUTHORISATIONs 
    on sm.SUB_MENU_ID equals a.SUB_MENU_ID into joined_autho 
from jA in joined_autho.DefaultIfEmpty()
where sm.MENU_ID.Equals(ViewState["MenuId"]) &&
      jA.Roleid.Equals(ddlroleid.Selectedvalue)
select new
{
     sm.SUB_MENU_ID,
     sm.SUB_MENU_NAME,
     jA.checkbox
};

我相信您已经正确地标记了您的问题,这是Linq to SQL查询。

很抱歉,我编辑了最后一行,忘记更正了。。谢谢。。但是您能建议我如何处理我的场景吗??