C# Linq中正确的Join语句
我一直在寻找我问题的答案,因为我是一个初学者,无法得到所有的答案,所以问我自己, 我有两个tables子菜单和AUTHORIZATION正在尝试放置联接,但不清楚是向左还是向右或其他方式,因为我对linq是新手 这是我到目前为止所做的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
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查询。很抱歉,我编辑了最后一行,忘记更正了。。谢谢。。但是您能建议我如何处理我的场景吗??