数码资讯
SQLServer的用户权限管理,数据删除其重复的菜单项
菜单中,三个表之间有以下关系: user_role = > roleid = > rolemenu rolemenu = = >菜单> menuid 他们之间的业务关系是: 当用户通过用户名登陆,得到了user_role列表,以及用户的角色了 通过user_role找到相应的菜单 有一个问题,是一个
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
菜单中,三个表之间有以下关系:
user_role = > roleid = > rolemenu
rolemenu = = >菜单> menuid
他们之间的业务关系是:
当用户通过用户名登陆,得到了user_role列表,以及用户的角色了
通过user_role找到相应的菜单
有一个问题,是一个用户可以有多个角色,一个角色有多个菜单,当然,有一个菜单项,可以在这两个不同的角色,有一个问题,用户在管理员角色的文件菜单,并在新闻管理员文件菜单中的这个角色,所以会有两回完全相同的文件菜单,下面,我用匿名和不同的方法来解决这个问题,代码如下:
复制代码代码如下所示:
类节目
{
static void main(String { } args)
{
#区域实体表的初始化
新的清单列表userrole =
{
新的user_role(01
新的user_role(01
新的user_role(02
};
rolemenu =新的列表清单
{
新的role_menu(2,3),
新的role_menu(1,1),
New Role_Menu (1,2),
新的role_menu(2,1),
新的role_menu(2,2),
};
列表菜单=新列表
{
新菜单(1,编辑器
新菜单(2,文件
新菜单(3,视图
新菜单(4,系统
};
#铁心端部定点
VaR在LINQ =从1 userrole
在加入数据rolemenu在data1.roleid等于data2.roleid
在菜单上加入数据data2.menuid等于data3.menuid
在data1.userid.equals(01 )
选择新的
{
data1.userid UserID =,
menuid = data2.menuid,
菜单=数据,
};
(LINQ。不同)。OrderBy(我= i.menu。OrderNumber)(。列出)
foreach(我= >。console.writeline(用户ID:{ 0 },我{ 1 }菜单,菜单名称:{ 2 }
i.userid,i.menuid,i.menu定义));
Console.ReadKey();
}
}
#区域实体对象
类user_role
{
公共字符串标识符{有};集;
public int roleid {有};集;
公共user_role(字符串标识符,int roleid)
{
this.roleid = roleid;
this.userid =用户名;
}
}
菜单类
{
public int menuid {有};集;
公共字符串定义{有};集;
public int OrderNumber {得到;集;}
公共菜单(int menuid,字符串定义,int OrderNumber)
{
this.menuid = menuid;
this.menuname =定义;
this.ordernumber =数量;
}
}
类role_menu
{
public int roleid {有};集;
public int menuid {有};集;
公共role_menu(int,int roleid,menuid)
{
this.roleid = roleid;
this.menuid = menuid;
}
}
#铁心端部定点
结果就是我想看到的:
user_role = > roleid = > rolemenu
rolemenu = = >菜单> menuid
他们之间的业务关系是:
当用户通过用户名登陆,得到了user_role列表,以及用户的角色了
通过user_role找到相应的菜单
有一个问题,是一个用户可以有多个角色,一个角色有多个菜单,当然,有一个菜单项,可以在这两个不同的角色,有一个问题,用户在管理员角色的文件菜单,并在新闻管理员文件菜单中的这个角色,所以会有两回完全相同的文件菜单,下面,我用匿名和不同的方法来解决这个问题,代码如下:
复制代码代码如下所示:
类节目
{
static void main(String { } args)
{
#区域实体表的初始化
新的清单列表userrole =
{
新的user_role(01
新的user_role(01
新的user_role(02
};
rolemenu =新的列表清单
{
新的role_menu(2,3),
新的role_menu(1,1),
New Role_Menu (1,2),
新的role_menu(2,1),
新的role_menu(2,2),
};
列表菜单=新列表
{
新菜单(1,编辑器
新菜单(2,文件
新菜单(3,视图
新菜单(4,系统
};
#铁心端部定点
VaR在LINQ =从1 userrole
在加入数据rolemenu在data1.roleid等于data2.roleid
在菜单上加入数据data2.menuid等于data3.menuid
在data1.userid.equals(01 )
选择新的
{
data1.userid UserID =,
menuid = data2.menuid,
菜单=数据,
};
(LINQ。不同)。OrderBy(我= i.menu。OrderNumber)(。列出)
foreach(我= >。console.writeline(用户ID:{ 0 },我{ 1 }菜单,菜单名称:{ 2 }
i.userid,i.menuid,i.menu定义));
Console.ReadKey();
}
}
#区域实体对象
类user_role
{
公共字符串标识符{有};集;
public int roleid {有};集;
公共user_role(字符串标识符,int roleid)
{
this.roleid = roleid;
this.userid =用户名;
}
}
菜单类
{
public int menuid {有};集;
公共字符串定义{有};集;
public int OrderNumber {得到;集;}
公共菜单(int menuid,字符串定义,int OrderNumber)
{
this.menuid = menuid;
this.menuname =定义;
this.ordernumber =数量;
}
}
类role_menu
{
public int roleid {有};集;
public int menuid {有};集;
公共role_menu(int,int roleid,menuid)
{
this.roleid = roleid;
this.menuid = menuid;
}
}
#铁心端部定点
结果就是我想看到的:
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。