を満たしている場合にのみ、各グループの最初のレコード:LINQ、条件は、私は、各グループの最初のレコードを選択するには、このLINQクエリを持って
repo.GroupBy(x => x.Revision, (key, g) => g.OrderBy(y => y.CreationDate).First())
は今、私は場合にのみ、各グループの最初のレコードを選択しますレコードが条件を満たしています。各のすべての最初のレコードを持参しなくても、それはオブジェクトを返し、私は私のデータベースの状態をチェックできるようにしたいので
!x.Terminated
もちろん、私は私のGROUPBYにどこを追加することはできませんグループ化してそこから操作してください。
** 編集
私のデザインで同じリビジョンを共有するレコードのグループは、その同じレジスタということが、多くの時間を編集しました。このようにして、より最近の作成日のレコードは、実際のリビジョンまたはバージョンのレジスタであり、グループ内の残りのレコードは履歴です。私の問題は、グループ内の実際のリビジョンのみを終了としてマークしていたため、グループ化する前に終了したフィーチャでフィルタリングして、各グループを作成日順に選択して最初のレコードのみを選択することはできませんでした。
今私の問題を解決するために、私は、レジスタを終了するたびに、グループ全体を終了としてマークし、グループ化する前に終了したレコードをフィルタリングし、日付順に並べ替えて、 @Jon Skeetと@Thomas Andre Lianが提案したように。
私は、しばらくの間、受け入れられた回答がなくても、誰かが、各グループの最初のレコードをグループ化し、注文し、選択した後で、終了した機能でフィルタリングできる何かを提案できるかもしれません。
終了したレコードを完全に*除外したいかどうかは分かりません。もしそうなら、なぜ 'repo.Where(x =>!x.Terminated).GroupBy(...)'を使わないのでしょうか? –
'GroupBy'の後に' Where' *を追加することを除外する理由を説明できますか?ありがとう –
@ user1892538コンパイラは私に次のエラーを返します: 'System.Linq.IQueryable'には "Where"の定義が含まれておらず、最適な拡張メソッドがオーバーロードされています 'System.Linq.Enumerable.Where (System.Collection.Generic .IEnumerable 、System.Func ) 'には無効な引数がいくつかあります。 –