Ho la seguente query in SQL che vorrei convertire in LINQ:Sql a Linq difficoltà - gruppo da, avendo
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
Sto avendo una difficoltà come scrivere l'ultima riga della mia domanda di sql in linq. Quello che segue è il mio lavoro finora:
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;
}
Credo che possa problema principale è che molti convertire una dichiarazione di sql avere in una in cui dichiarazione LINQ, ma nel mio caso io non credo che sia possibile scrivere un altro dove dopo il gruppo di linq statement!
Aggiornamento:
La situazione: Ho un certo numero di figli, ognuno dei quali ha molti diversi profili, (alcuni possono essere lo stesso). Un utente selezionerà un numero di bambini, da cui vorrei ricavare i loro profili comuni. Cioè, se il profilo X viene trovato per OGNI bambino, lo otterrò, se il profilo Y è trovato per ogni bambino tranne uno, allora sarebbe invalido!
Ora sto iniziando a pensare che devo usare una query NIDIFICATO! – test