私は2つの部分のキーを持つテーブルを持っています。 ID列、およびバージョン番号が含まれています。私はレコードの「最新バージョンのみ」を選択しようとしています。なぜこのLINQグループではありませんvb.netの行を集約することによって?
LINQの式スタイルを使用してGROUP BYを達成しようとしていて、バージョンの総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)
}
私は一致するプロパティとカスタムの並べ替え/機能をグループ化してカスタムクラスを作成する必要はありません、とテールエンドにラムダ式を使用していない解決策を探していますクエリの
ありがとうございます!
うわー、一日を節約する方法 –
この重要なナゲット情報をどこで学んだの? –
主に、System.Linq.EnumerableおよびSystem.Linq.Queryableのmsdn参照を参照しています。ラムダ構文を使用することを恐れてはいけないので、コンパイラはあなたが書いたものをそれに変えます。 –