Я сейчас работаю с этой схемой 
Так выглядит мой LINQ в настоящее время
var regionResults = (
from p in _context.Projects
from pr in p.Regions
where (data.RegionId == null || pr.RegionId == data.RegionId)
group p by pr.RegionId into g
join q in _context.Regions on g.Key equals _context.Regions.First().Id
select new Models.ViewModels.ProjectBreakdownViewModel.Regions
{
RegionName = q.Name,
TotalCount = g.Count(),
RejectedCount = g.Count(e => e.SubmissionStatusId == 2),
DeniedCount = g.Count(e => e.SubmissionStatusId == 3)
});
Это то, что он в настоящее время производит, хотяневерно 
Это то, что мне нужно, чтобы оно было ...

Я знаюпроблема с этой строкой, по существу
join q in _context.Regions on g.Key equals _context.Regions.First().Id
Я не знаю, как это сделать без использования .First (), похоже, нет способа сделать это.Я близко, я просто не знаю, как это закончить.