3 回答
TA贡献1839条经验 获得超15个赞
==区分大小写。
如果要比较两个字符串不区分大小写,则应该使用String.Equals接受 a的重载StringComparison:
var users = _identityDb.Users .Where(u => u.UserName .Equals(user.UserName, StringComparison.OrdinalIgnoreCase);
TA贡献1875条经验 获得超5个赞
显然每个人User都有财产UserName。可惜您忘了告诉我们房产的类型。由于标识符的名称以及与字符串的比较,我假设它UserName是一个字符串。
如果UserName已经是一个字符串,为什么还要比较它UserName.ToString()?
以下命令返回用户 DbSet 中值为UserName、 等于 的所有用户UserName.ToString:
var users = _identityDb.Users.Where(u => u.UserName == u.UserName.ToString());
因为UserName是一个字符串,UserName.ToString()所以永远等于UserName。在这种情况下,查询将返回所有Users.
现在你似乎有了一个userclass对象User。我们不知道这是否user是User您收藏的_identityDb.Users。
以下将返回_identityDb.UsersUserName 等于的所有用户user.UserName
var users = _identityDb.Users.Where(u => u.UserName == user.UserName);
如果user在里面_identityDb.Users你肯定会找到至少一个User有这个名字的,甚至可能不止一个。如果您仍然找不到,请尝试通过键入用户名进行调试:
string userName = user.UserName; var users = _identityDb.Users.Where(u => u.UserName == userName);
最后一种可能性:可能UserName不是字符串,或者您定义了自己的ToString(). 如果您省略了此信息,那么我的建议是花一些时间学习如何正确提问。
- 3 回答
- 0 关注
- 207 浏览
添加回答
举报
