Linq组的查询与计数和其他字段在mvc4
本文关键字:其他 字段 mvc4 查询 Linq | 更新日期: 2023-09-27 18:02:05
我正在写linq查询从表中获得一些细节。我想要得到docStatus
和"notVerified"
对每个clientID
的计数。
我的表结构如下
ID clientId clientName empID docStatus
1 IN1001 Infy 100 Verified
2 IN1001 Infy 101 notVerified
3 IN1001 Infy 102 notVerified
查询后,我想要以下形式的数据
clientID clientName Count
IN1001 Infy 2
这是我在下面尝试的。我能够得到计数,但我应该把哪里的条件在我下面的查询。
var noofRecords = (from c in db.ts_upld_doc
group c by c.upld_docid into grouping
select new
{
key = grouping.Key,
Count = grouping.Count()
});
return noofRecords.Count();
提前感谢。
您可能会在分组之前放置where
子句(为什么要将这些要过滤掉的项分组)。然后,如果您希望输出与指定的一样,最简单的方法是按clientID
和clientName
进行分组。
同样在上面的查询中,您按upld_docid
(ID
)字段分组-这是您的数据中的唯一字段-这意味着您的所有组的大小为1 -就好像您没有分组一样。
看下面的查询,应该做你想做的:
var noofRecords = (from c in db.ts_upld_doc
where c.docStatus == "notVerified"
group c by new { c.clientID, c.clientName } into grouping
select new
{
ClientId = grouping.Key.clientID,
ClientName = grouping.Key.clientName,
Count = grouping.Count()
}).ToList();
where可以放置在多个位置,只有一个选项:
var noofRecords = (from c in db.ts_upld_doc
where c.docStatus == "notVerified"
group c by c.upld_docid into grouping
select new
{
key = grouping.Key,
Count = grouping.Count()
});
return noofRecords.Count();
Be Aware !!您返回的是记录的数量,而不是您设置为grouping.Count()
的属性计数
要获得预期的结果,您应该执行以下操作:
var noofRecords = (from c in db.ts_upld_doc
where c.docStatus == "notVerified"
group c by new { c.clientId , c.clientName } into grouping
select new
{
ClientId = grouping.Key.clientId,
ClientName = grouping.Key.clientName,
Count = grouping.Count()
});
return noofRecords.ToList();