Linqを使用して次のSQLステートメントをEntityFrameworkに変換する方法を理解しようとしています。
SELECT SUM(Column1) AS Correct
, SUM(Column2) AS Incorrect
, UserName
FROM Stats
WHERE (StatType = 0)
GROUP BY UserName
ORDER BY UserName
この質問の目的上、DBのすべての列タイプはINT型であり、ユーザーごとに複数のデータ行があります。基本的に、出力に3つの列が必要であり、ユーザーごとに正しい選択と誤った選択の合計があります。
このような単純なSQLステートメントのように見えますが、LinqPadのようなもので何をしようとしても、常にエラーが発生します。比較的単純なものが欠けているに違いありません。「.Sum」句を追加し始めるとすぐに、コンパイルエラーなどが発生します。
Stats.Where(s => s.StatType == 0)
.GroupBy(s => s.UserName)
.Select(x => new { Correct = x.Column1
, Incorrect = x.Column2
, User=x.UserName})
.ToList()