我有一个表,用于存储每个类别中的交易状态。类别例如说信用卡,借记卡等1可能有15个状态存储用于CC,5个用于DC。我想对类别进行分组,查看更新日期所订购的状态并获取状态。
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>();
使用此代码,我得到如下所示的错误。
IGrouping<string, LoadCardStatus>
不包含LoadCardStatus_Id
的定义,也没有扩展方法LoadCardStatus_Id
接受IGrouping<string, LoadCardStatus>
类型的第一个参数 可以找到(你错过了使用指令或程序集 引用?)'
我用Google搜索了很多内容,但大多数分组只是用于获取计数。
答案 0 :(得分:2)
由于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()
})