【发布时间】:2013-02-14 19:05:11
【问题描述】:
我有三个表用户、用户角色、角色。
- Usres 表的列是 UserId(Pk varchar(20)), CashCenterId(Int)
- UserRoles 的列是 UserRoleID(pk Int), UserId(Fk to user table), RoleID(Fk 到角色表)
- 角色的列是 RoleId(Pk int), RoleName(varchar(30))
我正在使用 LINQ to ENTITY 框架来查询它们。
现在我想要一个函数来检查登录用户是否具有“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. 角色为“siteUser”的“Ram” 2. 角色为“FFFAdmin”的“ram”
现在,当我传递“Ram”时,此函数应返回 false,但由于此查询的不区分大小写的行为,它返回 true。
注意* 我无法更改数据库的排序规则类型以使查询区分大小写。请帮助我是实体和 LInq 的新手。
【问题讨论】:
标签: linq-to-entities