LINQ to SQLのメモ

LINQ to SQLを仕事で使う機会があったので、実際に使うまでやり方を知らなかった機能のメモ。

Group by

group 要素 by キー

var db = new HogeDataContext();
var query = from d in db.Person
            group d by d.Organization;

さらにここから集計する場合

var result = query.ToDictionary(g => g.Key, g => g.Count());

Console.WriteLine(result["A"]);
Console.WriteLine(result["B"]);
Console.WriteLine(result["C"]);
Console.WriteLine(result.Sum(o => o.Value));

Join

join 要素 in テーブル on 条件の左辺 equals 条件の右辺

var db = new HogeDataContext();
var query = from p in db.Person
            join org in db.Organization on p.OrgId equals org.Id
            where org.Name == "A"
            select p;