我有三个表用户,用户角色,角色。
- Usres 表的列是 UserId(Pk varchar(20)), CashCenterId(Int)
- UserRoles 的列是 UserRoleID(pk Int)、UserId(Fk 到用户表)、RoleID(Fk 到角色表)
- Roles 的列是 RoleId(Pk int)、RoleName(varchar(30))
我正在使用 LINQ to ENTITY Framework 来查询它们。
现在我想要一个函数来检查登录用户是否具有“FFFAdmin”角色,因此我将登录用户的 UserId 传递给该函数并在函数中执行以下操作。
public bool isUserFFFAdmin(string UserId){
return (from u in Db.Users
join ur in Db.UserRoles on u.UserID equals ur.UserID
join r in Db.Roles on ur.RoleID equals r.RoleID
where r.RoleName == "FFFAdmin"
&& u.UserID.Equals(UserId)
select '1').Any();
}
现在的问题是这个查询不区分大小写所以如果我有两个用户说
1.“Ram”角色为“siteUser” 2.“ram”角色为“FFFAdmin”
现在,当我通过“Ram”时,此函数应返回 false,但由于此查询的不区分大小写的行为,它返回 true。
注意* 我无法更改数据库的排序规则类型以使查询区分大小写。请帮助我是实体和 LInq 的新手。