基于LINQ中查找的计数
我有一个名为Cases的表(或实体)。还有另一个表CaseStatus_Lookup,该表的主键是Cases表中的外键 我想做的是:对于每一种状态类型,我都需要案例数量。例如,如果status=in progress,我想知道有多少案例处于该状态 还有一件事:我还想根据UserID过滤案例基于LINQ中查找的计数,linq,Linq,我有一个名为Cases的表(或实体)。还有另一个表CaseStatus_Lookup,该表的主键是Cases表中的外键 我想做的是:对于每一种状态类型,我都需要案例数量。例如,如果status=in progress,我想知道有多少案例处于该状态 还有一件事:我还想根据UserID过滤案例 我在林克尝试了几种方法,但都没有成功。我想知道是否有人能帮忙。试试Linq。GroupBy 我假设你的实体结构 假设您的案例实体如下 public class Case { public int Id{g
我在林克尝试了几种方法,但都没有成功。我想知道是否有人能帮忙。试试Linq
。GroupBy
我假设你的实体结构
假设您的案例
实体如下
public class Case
{
public int Id{get;set;}
public int CaseStatusId{get;set;}
public int UserId{get;set;}
//navigational fields
public virtual CaseStatus CaseStatus {get;set;}
}
假设您的CaseStatus
实体如下:
public class CaseStatus
{
public int Id{get;set;}
public string Name{get;set;}
//navigational fields..
public virtual ICollection<Case> Cases{get;set;}
}
类似地,您可以根据userId进一步过滤结果
开始探索关于Linq的知识您需要一个返回总和并将状态作为参数的函数:-如下所示
MyCaseStatusEnum caseStatus; //Pass your required status
int caseCount = myCases
.Where(r => r.Status == caseStatus)
.GroupBy(p => p.Status)
.Select(q => q.Count()).FirstOrDefault<int>();
MyCaseStatus枚举caseStatus//通过您所需的状态
int caseCount=myCases
.其中(r=>r.Status==caseStatus)
.GroupBy(p=>p.Status)
.Select(q=>q.Count()).FirstOrDefault();
MyCaseStatusEnum caseStatus; //Pass your required status
int caseCount = myCases
.Where(r => r.Status == caseStatus)
.GroupBy(p => p.Status)
.Select(q => q.Count()).FirstOrDefault<int>();