为什么LINQ查询不返回任何元素?

时间:2018-05-05 11:55:27

标签: c# sql sql-server linq

我有以下代码和数据库,我不明白这个问题。每当我尝试运行程序时,它总是抛出此异常: 类型' System.InvalidOperationException'未处理的异常发生在System.Core.dll

在我的用户数据库中有一行UserName:majorcsanad和Password:722308,当我尝试使用这样的名称/密码登录时,它包含零元素。

我的代码如下:

Result = homer loves doughnut
Result = bart hates pie
Result = marge sees cake
Done

1 个答案:

答案 0 :(得分:2)

您收到componentDidMount,因为您正在使用System.InvalidOperationException linq查询。

如果找不到任何元素或找到与您的搜索匹配的多个元素,则会发生这种情况。因此,您要么拥有多个具有相同用户名的用户,要么没有具有该用户名的用户。

您还需要在搜索用户名时考虑案例。确保搜索忽略大小写或搜索更改了用户名在DB中的用户名的情况。

您还可以修改代码以读取.Single(),如果找不到则不会抛出异常,但如果找到多个,则仍会抛出SingleOrDefault()。在你的情况下,我更喜欢System.InvalidOperationException,因为它告诉你们两者。我认为错误在于我自己的角色案例,但是你要弄清楚。

以下是我将如何编写上述代码的示例......您将会明白这一点。

Single()

现在,我在现场抓住这个只是为了帮助我犯错误......