Сначала получите информацию о зачислении студентов из таблицы db.Students
:
var stats = db.Students
.GroupBy(en => en.Class)
.Select(g => new {
Class = g.Key
, Accepted = g.Count(en => en.Progress == MyEnum.Accepted)
, NotAccepted = g.Count(en => en.Progress < MyEnum.Accepted)
})
.Where(g => g.Accepted != 0)
.ToList();
Далее, извлекаем классы из другой базы данных:
var classIds = stats.Select(en => en.Class).ToList();
var classes = dbOther.Classes.Where(c => classIds.Contains(c.Class)).ToList();
Наконец, объедините два результата:
var result = (from s in stats
join c in classes on c.ClassId = s.ClassId
select new {
ClassNum = c.Class
, c.StartDate
, c.Weeks
, s.Accepted
, s.NotAccepted
}).ToList();