最大値を持つすべての行を返します
-
01-10-2019 - |
質問
エンティティフレームワークを使用してデータベースを接続しています。
いくつかのフィールドを持っているテーブル(「ファイル」と呼びましょう)を持っています。
ID、バージョン、XYZ Primarkyキーは、IDとバージョンに基づいています。したがって、同じIDでいくつかの行を持つことができますが、異なるバージョン(および逆)があります。
質問は:
どうすれば、ラムダの表現を使用して、エンティティフレームワークを尋ねて、「ファイル」のすべての最後のバージョンを返すようにしてください。
例:データ:
ID;Version;Other
1;1;YX
1;2;YZ
2;1;AH
2;2;BH
2;5;CA
1;3;AAA
結果:
1;3;AAA
2;5;CA
ありがとうございました!
!!目標は、データベースがすべての行を返す必要がなく、1回だけ呼ばれることです。したがって、getAllrowsのようなソリューションを忘れてコレクション全体を読んで最新のもののみを保存するか、すべての可能なIDのリストを取得して最後のものを取得することです。別のリクエストのバージョンforeach。ありがとう!
解決
????????????LinqToEntites???????????????
var result = from f in myEntities.Files
group f by f.ID into g
select g.OrderByDescending(f => f.Version).FirstOrDefault();
????????????First
???FirstOrDefault
??????????????????UnsupportedException
??????:
?????????????????????????????????????????????????????FirstOrDefault??????????????????
所属していません StackOverflow