select t1.* from (
select * from tMenuInfo where MenuName='常见问答' or ParentName='常见问答') t1
inner JOIN
(select * from tMenuInfo where systemid in (select MenuSystemid from tRoleMenu where roleSystemid in (select RoleSystemID from tRoleUser where userSystemid=6348650665767187))) t2
on t1.systemid=t2.systemid
这样的语句如果要用LINQ实现,应该怎么写呢,求思路。。没分了,跪谢。

解决方案 »

  1.   

    in可以转化为any
    tMenuInfo.Where(x => tRoleMenu.Where(...).Any(y => y.roleSystemid == x.systemid))
      

  2.   

    var query=from t1 in tMenuInfo.Where(m=>m.MenuName=="常见问答" || ParentName=="常见问答")
              join t2 in tMenuInfo.Where(m=>tRoleMenu.Where(x=>
    tRoleUser.Where(r=>r.userSystemid==6348650665767187).Select(r=>r.RoleSystemID).Contains (x.roleSystemid)).Select(r=>r.MenuSystemid)).Contains(t2.systemid))
              on t1.systemid equals t2.systemid
              select t1;
      

  3.   


    正解,另外楼主要是确定要转linq的话,得学学语法啊