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 關注
- 190 瀏覽
添加回答
舉報
