我正在使用在Visual Studio 2010中创建的SQL数据服务器。我想查看具有某些用户名的用户数。

var x = from u in db.UserInfoes
                        where
                        u.Password == password &&
                        u.Username == username
                        select count(*);

我的问题是count(*)。VS不接受这个,有没有办法写这个?

最佳答案

您也可以这样操作:

var x = db.UserInfoes
    .Count(u => u.Password == password && u.Username == username);

where子句可以看作是多余的,因为您可以将过滤器(谓词)放在Count()方法中

但由于要检查的是单一记录(假设只有一个用户与用户名和密码组合匹配),因此您实际上想使用ANY方法并获取布尔值
var x = db.UserInfoes
    .Any(u => u.Password == password && u.Username == username);

any会比count快一点,因为找到匹配项后它将立即返回true,而不是遍历整个表以确保精确计数。

关于.net - SQL计数(*)语句出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17948476/

10-13 09:22