2016-05-08 5 views
0
SELECT 
    MAX([VersionCode]) AS VersionCode, 
    [PackageName] 
FROM 
    [dbo].[Application] 
GROUP BY 
    [PackageName] 
ORDER BY 
    [VersionCode] DESC 

このSQLステートメントでは、グループ化してアプリケーションの最大バージョンを選択できます。エンティティフレームワーク:グループ単位でフレームワークステートメントに翻訳するにはどうすればいいですか

私はセクションで主にグループ内で、Entity Frameworkのを使用するためにそれを翻訳する難しさがあります。その後、私は最高のバージョンによって、アプリケーションを取得する方法がわからない

GroupBy (a=>a.PackageName) 

を。

+0

この段階で、私はこのグループを注文Applications.OrderByDescending(X => x.VersionCode).GroupBy(X => x.PackageName)を行うことができます。 (x => x)を選択しますが、グループ内の最高のバージョンコードを持つアプリケーションを取得するには – LittleFunny

答えて

1

GroupByの後、出力をSelectと投影する必要があります。あなたは最高のバージョンが必要として、あなたはMaxを使用します。

var results = db.Applications 
    .GroupBy(a => a.PackageName) 
    .Select(g => new 
    { 
     PackageName = g.Key, 
     Version = g.Max(a => a.VersionCode) 
    }); 
+0

これはうまくいきます。 – LittleFunny