mvc3 で linq を使用しているときに、いくつかの不規則性に気付きました。
「PIN」列を持つデータベース テーブルがあります。列には 28 文字が必要で、完全にランダムな文字を格納できます。次に、コントローラー アクションがあります。
Function Unlock() As ActionResult
Dim key As String = Request("token")
If key IsNot Nothing Then
Dim user As Users = db.Users.SingleOrDefault(Function(u) u.PIN = key)
If user IsNot Nothing Then
user.PIN = Nothing
db.SaveChanges()
Return View()
End If
End If
Return RedirectToAction("Index", "Home", New With {.Area = ""})
End Function
たとえば、PIN が "Co/5c1mmil2e+clGK3c6JvdrGpQ=" を保持している場合、キー文字列はクエリ文字列からその文字列全体を読み取りますが、同じ値がデータベースに格納されていても、ユーザー参照は常に何も終了しません。
一方、PIN が "GbgI4QAaYWanaKWUm6j7Jg5IpA8=" を保持している場合、すべて正常に機能します。それで、おそらくlinqは/や+のようないくつかの文字に問題があると思いましたが、この問題を解決するにはどうすればよいですか?