LINQ IN条款声明

本文关键字:声明 IN LINQ | 更新日期: 2023-09-27 18:00:34

我想把这个sql语句改成LINQ,但我对IN子句有问题

Declare @RoleId as nvarchar(128) 
Set  @RoleId = (SELECT Id FROM AspNetRoles WHERE Name = 'Admin')
SELECT * FROM Menus WHERE MenuEnable = 1 
                          AND MenuParentId IS NULL  
                          AND MenuId IN (SELECT MenuId FROM MenusRoles WHERE RoleId = @RoleId)
ORDER BY MenuOrder

LINQ IN条款声明

如果我理解你的问题,你想检索属于名为"Admin"的角色的所有菜单。

var results = (from m in Menus
               join mr in MenuRoles on m.MenuId equals mr.MenuId
               join anr in AspNetRoles on mr.RoleId equals anr.RoleId
               where anr.Name == "Admin" && m.MenuParentId == null
               orderby m.MenuOrder
               select m);