3
我有三个表用户,UserRoles,角色。 Usres表需要解决大小写不敏感的Linq to Entity Framework查询
- 列是用户ID(PK VARCHAR(20)),CashCenterId(INT)的UserRole的
- 列是UserRoleID(PK智力),用户ID(FK到用户表), 角色ID(FK到角色表)角色
- 列是角色ID(PK INT),角色名(为varchar(30))
我使用LINQ到实体框架来对它们进行查询。
现在我想要一个函数来检查登录用户是否具有'FFFAdmin'角色,因此我将loggin用户的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'与角色‘FFFAdmin’
RAM现在,当我传递'Ram'时,此函数应该返回false,但由于此查询的大小写不敏感,它将返回true。
注*我无法更改我的数据库的排序规则类型以使查询大小写敏感。请帮助我是新的实体和LInq。
非常感谢@Gert Arnold它的工作(我认为最好的解决方案将是改变我的专栏的排序类型) – 2013-02-15 08:45:13