У меня есть следующий запрос на 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 будет найден для каждого ребенка, кроме одного, то он будет недействительным!