私は非常に簡単な解決策を期待していますが、私の人生ではこれを理解することはできません...
これに相当するLINQを作成しようとしています:
SELECT Group, COUNT(*) as GroupCount
FROM table1
WHERE Valid > 0
GROUP BY Group, Project
私はこれまでのところこれを持っています:
var model = _db.table1
.Where(r => r.Valid > 0)
.GroupBy(r => new { r.GROUP, r.Project})
.Select(r => new{ r.GROUP, GroupCount = r.count()};
クエリの何が問題になっていますか? Visual Studio がスローし、次のようなエラーが表示されます。
System.Linq.IGrouping' には 'GROUP' の定義が含まれておらず、タイプ 'System.Linq.IGrouping' の最初の引数を受け入れる拡張メソッド 'GROUP' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか? )
EDIT:ちょっと注意:上記のエラーは節で与えられr.Group
ています。Select
また、count
拡張メソッドが存在しないというエラーがスローされますが、この方法で行われた他の例を見てきました。たぶん、古いバージョンの LINQ の例を見ていましたか?
EDIT2:いくつかのサンプルデータ
GroupName ProjectID Step Other Info...
-----------------------------------------------
GroupA | 1 | 1 | ..............
GroupA | 1 | 2 |..............
GroupA | 3 | 1 | ..............
GroupB | 4 | 1 | ..............
GroupB | 5 | 1 | ..............
GroupC | 6 | 1 |..............
望ましい結果:
GroupName Group Count
---------------------------
GroupA | 2
GroupB | 2
GroupC | 1