我有一个名为角色的列表。使用此列表,我得到另一个名为 menu 的列表,其中在一个名为RoleType的实体字段中,我也插入了d.RoleID。
如何通过名为menu的第二个列表中的 RoleType = d.RoleID 订购第二个列表?
我已尝试.Distinct().ToList().OrderBy(RoleType)
,但它无法正常工作。
var roles = (from d in db.TB_UserRoles
where d.UserID == userID
select d.RoleID).ToList();
var menu = (from d in db.TB_MenuRoles
where roles.Contains(d.RoleID)
select new Menu
{
MenuName = d.TB_Menu.Name,
RoleType = d.RoleID
}).Distinct().ToList();
答案 0 :(得分:2)
OrderBy(RoleType)
不是有效的linq语法,它应该是
OrderBy(x => x.RoleType)
答案 1 :(得分:1)
尝试此查询
var roles = (from d in db.TB_UserRoles
where d.UserID == userID
select d.RoleID).ToList();
var menu = (from d in db.TB_MenuRoles
where roles.Contains(d.RoleID)
select new Menu
{
MenuName = d.TB_Menu.Name,
RoleType = d.RoleID
}).Distinct().OrderBy(x=>x.RoleType).ToList();