我在 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 语句,但在我的情况下,我认为不可能在 group by linq 语句之后编写另一个 where!
更新:
情况:我有许多孩子,每个孩子都有许多不同的个人资料,(有些可能相同)。用户将选择一些孩子,我想从中得出他们的共同个人资料。也就是说,如果为每个孩子找到配置文件 X,那么我会得到它,如果为除一个之外的每个孩子找到配置文件 Y,那么它将是无效的!