【问题标题】:Check for record in Table检查表中的记录
【发布时间】:2010-08-13 11:32:47
【问题描述】:

我试图在 if 语句中检查 SQL 表中是否存在记录,我试图使用 .Count() 但现在明白它不起作用,因为它将返回所有表中的记录。

// If the current user does not exist in the Database, then add the user
if (staffdb.Staffs.Single(s => s.Staffname == user).Count() == 0)
{

}

在这方面我有点新手,但我在网上做了一些搜索,似乎找不到任何可以解决的问题。

【问题讨论】:

  • 请不要在标题中添加“with asp.net mvc 2 c# SQL LINQ”之类的内容。这一切都属于标签,因为它只是为了对您的问题进行分类。
  • 抱歉,John,我发帖后有什么办法可以更改标题吗?

标签: c# linq-to-sql


【解决方案1】:

正确的解决办法是:

if (!staffdb.Staffs.Any(s => s.Staffname == user))
{
    // ...
}

这样可以确保数据库一旦找到它就会停止查找。如果您使用.Where() 后跟.Count(),它可能会遍历整个表并检索到比必要更长的列表。

【讨论】:

  • 太棒了!为我工作 Timwi 并感谢您提供有关 .Where() 和 .Count() 遍历整个表格的信息,我不知道这一点。
【解决方案2】:
// If the current user does not exist in the Database, then add the user
if (staffdb.Staffs.SingleOrDefault(s => s.Staffname == user) == null)
{

}

【讨论】:

  • 投反对票,因为代码错误(它只检查数据库中是否有用户)并且效率非常低。
猜你喜欢
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多