我正在使用查询来查看用户是否已经存在于数据库中。如果它找到一个用户,它将它添加到列表(而不是数据库)中,并显示一条消息。如果用户不存在,程序会继续添加用户。当找不到结果时,linq查询返回什么
将查询结果添加到列表中时,存在问题,结果什么都没发现。如果查询什么都没有发现(用户还不存在),返回的值不是null或0,所以我不知道如何检查这个。
我的代码工作正常,但我的问题是试图找到一个更优雅的方法。我尝试将查询结果添加到列表中。如果他是“抓”,那就意味着用户不存在并且应该被添加。现在我的代码是:
var userIsNew =
from f in controlEntities.Users
where (f.UserId == userIdTextBox.Text)
select f;
List<Users> temp = new List<Users>();
try
{
temp = userIsNew.ToList<Users>();
}
catch
{
//do nothing
}
if (temp.Count > 0)
{
MessageBox.Show("This UserId already exists in the Database. \nPlease try another UserId.");
}
感谢您的帮助!
[逻辑异常](http://msdn.microsoft.com/en-us/library/dd264997.aspx)*几乎总是*错误。 – mellamokb 2012-07-20 13:48:57
对返回不匹配的结果调用'.ToList'应该可以正常工作。它只是一个有0个条目的列表。 –
mellamokb
2012-07-20 13:53:47
这是我第一次尝试。但是当我尝试添加没有匹配任何列表的结果时,它会引发异常。所以我的解决方法是使用此抛出的异常作为执行其余代码的一种方式。 – tomo 2012-07-20 13:56:56