C# 如何根据为用户定义的访问权限检查表项?

C# 如何根据为用户定义的访问权限检查表项?,c#,sql-server,linq,C#,Sql Server,Linq,我有两个表,其中包含以下列: SELECT TOP 1000 [Id] ,[UserId] ,[MenuId] ,[parentid] FROM [TravelEnterDB].[dbo].[UserAccess] SELECT TOP 1000 [Id] ,[Title] ,[parentId] ,[IsActive] ,[Url] ,[OrderMenu] ,[IconNam

我有两个表,其中包含以下列:

SELECT TOP 1000 [Id]
      ,[UserId]
      ,[MenuId]
      ,[parentid]
  FROM [TravelEnterDB].[dbo].[UserAccess]



SELECT TOP 1000 [Id]
      ,[Title]
      ,[parentId]
      ,[IsActive]
      ,[Url]
      ,[OrderMenu]
      ,[IconName]
  FROM [TravelEnterDB].[dbo].[AdminMenu]
所以这里是交易,我想在MVC中的一个表中显示所有带有“parenId=0”的“AdminMenu”记录,我想勾选由“UserId”提供给特定用户的项目。我有一些代码,但它们工作不正常。 代码如下:

public ActionResult ADDAccess(int? id, string UserId)
 {
 List<MenuClass> model = new List<MenuClass>();
 var result =(from adminMenu in db.AdminMenus
 where adminMenu.parentId == 0
 select new
  {
    adminMenu.Id,
    adminMenu.IsActive,
    adminMenu.OrderMenu,
    adminMenu.Title,
    adminMenu.Url,
    adminMenu.parentId,
    adminMenu.IconName,
    });
     var users = db.UserAccesses.Where(p => p.UserId == UserId).ToList();
     var t = (from m in users
     join r in result on m.MenuId equals r.Id
    select new
                     {
                         r.Id,
                         r.IsActive,
                         r.OrderMenu,
                         r.Title,
                         r.Url,
                         r.parentId,
                         r.IconName,
                         m.UserId,
                         m.MenuId
                     }).ToList();
            foreach (var item in t)
            {
                MenuClass menu = new MenuClass();
                menu.IconName = item.IconName;
                menu.IsActive = item.IsActive;
                menu.Title = item.Title;
                menu.Url = item.Url;
                menu.Id = item.Id;
               if (item.Id == item.MenuId && item.UserId == UserId)
                 {
                   menu.IsChecked = true;
                 }
                menu.parentId = (int)item.parentId;
                model.Add(menu);
            }
            return View(model);
        }
public ActionResult ADDAccess(int?id,string UserId)
{
列表模型=新列表();
var result=(来自db.AdminMenus中的adminMenu
其中adminMenu.parentId==0
选择新的
{
adminMenu.Id,
adminMenu.IsActive,
adminMenu.OrderMenu,
adminMenu.Title,
adminMenu.Url,
adminMenu.parentId,
adminMenu.IconName,
});
var users=db.useraccess.Where(p=>p.UserId==UserId.ToList();
var t=(来自用户中的m)
在m.MenuId等于r.Id的结果中加入r
选择新的
{
r、 身份证,
r、 我很活跃,
r、 订单菜单,
r、 头衔,
r、 网址,
r、 父ID,
r、 我的名字,
m、 用户ID,
m、 梅纽德
}).ToList();
foreach(t中的var项目)
{
菜单类菜单=新建菜单类();
menu.IconName=item.IconName;
menu.IsActive=item.IsActive;
menu.Title=item.Title;
menu.Url=item.Url;
menu.Id=item.Id;
if(item.Id==item.MenuId&&item.UserId==UserId)
{
menu.IsChecked=true;
}
menu.parentId=(int)item.parentId;
模型。添加(菜单);
}
返回视图(模型);
}