Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net linq无法从数据库中找到该值,尽管它存在于数据库中_Vb.net_Asp.net Mvc 3_Linq - Fatal编程技术网

Vb.net linq无法从数据库中找到该值,尽管它存在于数据库中

Vb.net linq无法从数据库中找到该值,尽管它存在于数据库中,vb.net,asp.net-mvc-3,linq,Vb.net,Asp.net Mvc 3,Linq,在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.SingleOrDef

在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/5c1mil2e+clGK3c6JvdrGpQ=”键字符串从querystring读取完整字符串时,但用户引用总是以零结尾,即使相同的值存储在数据库中

另一方面,当PIN保持“GbgI4QAaYWanaKWUm6j7Jg5IpA8=”时,一切正常。所以我认为linq可能在某些字符(如/或+)上有问题,但如何解决这个问题呢?

试试看
u.PIN.等于(键)

在调试时使用intelliTrace将对linq有很大帮助


同样,在这种情况下,FirtsOrDefault接缝对我来说更合理,而不是SingleOrDefault

尝试将single'='替换为'=='@bhuvin:这是VB.NET,不存在==ohh@DanielHilgarth-对不起……我没有注意到请求(“令牌”)将+替换为空白,所以,它首先需要进行url编码,而不是直接将字符串插入url栏。这是我的错误,所以不是linq的错。但我会把你的答案标记为正确,因为使用firstordefault更合理