1

我搜索了我的问题的答案,因为我是一个初学者,无法得到所有这些,所以问我自己,我有两个表SUBMENUAUTHORIZATION正在尝试加入但不清楚是放左还是右还是一些其他方式,因为我是 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 和 submenuid 获取授权表中复选框的值,如果该角色没有值授权表中的 id 默认 false 值应该返回。

希望我很好地解释了我的情况,重复问题的可能性......对不起。

4

1 回答 1

0

您的查询甚至不会编译。在您的where条件中,第二个Equals应该是方法调用:

 // 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 查询。

于 2013-06-30T08:33:03.703 回答