Сложность Sql в Linq -сгруппировать по, имея

У меня есть следующий запрос на SQL, который я хотел бы преобразовать в LINQ:

select profile_id from t
where child_id in (1, 2,3,...) //this will be a list of integers CHILDREN
group by profile_id
having count(distinct child_id) = 3

У меня возникли трудности с тем, как записать последнюю строку моего запроса sql в linq. Ниже приводится моя работа :

public IQueryable<ProfileChildRelationship> GetPCRelByCids(List<int> children)
    {
        var query = from pcr in this._entities.ProfileChildRelationships
                    where children.Contains(pcr.pcChildIDF)
                    group pcr by pcr.pcProfileIDF into g
                    ??? having...?
                    select pcr;

        return query;
    }

. Я думаю, что основная проблема заключается в том, что многие преобразуют оператор sql в оператор where linq, но в моем случае я не думаю, что можно написать еще один оператор where после группы с помощью linq. утверждение!

Обновление:

Ситуация :У меня есть несколько детей, каждый из которых имеет много разных профилей, (некоторые из них могут быть одинаковыми ). Пользователь выберет количество детей, из которых я хотел бы получить их общие профили. То есть, если профиль X будет найден для КАЖДОГО ребенка, то я его получу, если профиль Y будет найден для каждого ребенка, кроме одного, то он будет недействительным!

6
задан test 1 May 2012 в 13:38
поделиться