我正在使用在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/