C# GroupBy函数检索每个类别的第一行,状态为Success,order by updateDate为latest
我有一个表,其中存储了每个类别的交易状态。类别,例如,信用卡、借记卡等。1可能为CC存储了5个状态,为DC存储了5个状态。我想对类别进行分组,按照更新日期查看状态并获取状态C# GroupBy函数检索每个类别的第一行,状态为Success,order by updateDate为latest,c#,entity-framework,linq,C#,Entity Framework,Linq,我有一个表,其中存储了每个类别的交易状态。类别,例如,信用卡、借记卡等。1可能为CC存储了5个状态,为DC存储了5个状态。我想对类别进行分组,按照更新日期查看状态并获取状态 status = ldstatusC.LoadCardStatus .Where(w => w.Status = "S") .OrderByDescending(sDate => sDate.Updated_Date) .GroupBy(gSt => gSt.CardType) .Selec
status = ldstatusC.LoadCardStatus
.Where(w => w.Status = "S")
.OrderByDescending(sDate => sDate.Updated_Date)
.GroupBy(gSt => gSt.CardType)
.Select(s => new Models.MODEL_LoadCardStatus()
{
CardTypeID = s.CardTypeId,
CardType = s.Key,
transactionStatus = s.Status,
UpdatedDate = s.updatedDate
})
.ToList<Models.MODEL_LoadCardStatus>();
status=ldstatusC.LoadCardStatus
.其中(w=>w.Status=“S”)
.OrderByDescending(sDate=>sDate.Updated_日期)
.GroupBy(gSt=>gSt.CardType)
.Select(s=>newmodels.MODEL_LoadCardStatus()
{
CardTypeID=s.CardTypeID,
CardType=s.键,
transactionStatus=s.状态,
UpdateDate=s.UpdateDate
})
.ToList();
有了这段代码,我得到的错误如下所示
i分组
不包含LoadCardStatus\u Id
的定义,也不包含扩展方法LoadCardStatus\u Id
接受类型为i分组的第一个参数
无法找到(是否缺少using指令或程序集
参考?’
我在谷歌上搜索了很多次,但大多数group by只是用来获取计数。由于GroupBy
生成的每个项目都是一个组,如果您希望访问其单个项目的属性,您需要添加First()
,或Min()
,或其他聚合器方法:
.Select(g => new Models.MODEL_LoadCardStatus {
CardTypeID = g.First().CardTypeId,
CardType = g.Key,
transactionStatus = g.First().Status,
UpdatedDate = g.Select(s => s.UpdateDate).Max()
})
如果您为CC存储了5个状态,为DC存储了5个状态,您希望返回2个结果,还是返回10个结果?我希望这两个结果的上次更新成功状态。例如,我想要2个成功状态-1个为CC,1个为DC。