我正在尝试使用ASP.NET LINQ计算数据库中的行数 这里的目标是:
Select * from ChangeBoards WHERE status_id = 1 OR status_id = 3
现在让我们假设数据库看起来像
id : INT
status _id INT
id:1 status_id:1
id:2 status_id:3
id:3 status_id:2
使用下面我的输出应该是2.为什么不是?
var Open = db.ChangeBoards.AsEnumerable()
.Where(x => x.status_id.Equals("1") || x.status_id.Equals("3")
.ToList()
.Count();
以上内容并未给出任何统计数字。它始终显示为零。
如何计算表中具有列中特定数据的行?
答案 0 :(得分:4)
简单地说:
var Open = db.ChangeBoards.Count(x=> x.status_id == 1 || x.status_id == 3);
我认为与Equals
比较不会返回记录。
从SQL查询表单看来,status_id
是数字类型,您首先枚举内存中的所有行,然后在{{1}之间进行对象比较(使用等于)和字符串status_id
。那将永远是假的。这也将需要不必要的资源使用,因为它将首先将表加载到内存中,然后比较/计算计数。