尝试:
from p in Periods group p by p.StartDate.Year into g orderby g.Key select new { g.Key, Hours = (from t in Times where t.TransactionDate.Year == g.Key select t).Sum(t => t.Units), Invoices = (from i in Invoices where i.CreatedDate.Year == g.Key select i).Sum(i => i.Price) }