我有一个有 2 部分键的表;一个 ID 列和一个版本号。我正在尝试选择“仅最新版本”的记录。
我正在尝试使用 LINQ 的表达方式,实现一个 GROUP BY,并拉出 Version 的聚合 MAX 值。 但是没有发生聚合。
总结代码:
From C In Credentials
Group Join ....
Group Join ....
Group C.CredentialID, NE.ClientID, C.Version By
NE.ClientID, C.CredentialID Into CGroup = Group
From CG In CGroup
Select New With {
.ClientID = CG.ClientID,
.CredentialID = CG.CredentialID,
.MaxVersion = CGroup.Max(Function(p) p.Version)
}
实际结果:
ClientID CredentialID MaxVersion
1196 1 3
1196 1 3
1196 1 3
1196 2 1
期望的结果:
ClientID CredentialID MaxVersion
1196 1 3
1196 2 1
也试过了,结果一样:
Group C By Key = New With
{Key NE.ClientID, Key C.CredentialID} Into CGroup = Group
From CG In CGroup
Select New With {
.ClientID = Key.ClientID,
.CredentialID = Key.CredentialID,
.MaxVersion = CGroup.Max(Function(p) p.Version)
}
我正在寻找一种解决方案,它不涉及创建具有匹配属性和自定义排序/分组函数的自定义类,并且不使用查询末尾的 lambda 表达式。
谢谢!