Tsql 需要NHibernate查询帮助

Tsql 需要NHibernate查询帮助,tsql,nhibernate,nhibernate-criteria,Tsql,Nhibernate,Nhibernate Criteria,是否可以将以下查询转换为ICriteria或LINQ,如果可以,如何转换 SELECT Test.personid FROM ( SELECT r.PersonId AS personid, e.ActivityId FROM Event e INNER JOIN Registration r ON e.Id = r.EventId WHERE e.ActivityId IN (1, 2)

是否可以将以下查询转换为ICriteria或LINQ,如果可以,如何转换

    SELECT Test.personid
    FROM 
    (
        SELECT r.PersonId AS personid, e.ActivityId
        FROM Event e
        INNER JOIN Registration r ON e.Id = r.EventId
        WHERE e.ActivityId IN (1, 2)
        GROUP BY r.PersonId, e.ActivityId
    ) AS Test

    GROUP BY Test.personid
    HAVING COUNT(Test.ActivityId) >= 2

查询将始终不返回任何内容。内部查询不会为每个personid返回nothing或activityId 1或activityId 2或activityId 1和2,然后计算最大值2,然后过滤掉所有最大值2是,这是真的。在我把它发布到这里之后,我做了一些手动名称更改,所以我似乎删除了一个活动id,因为它应该是3。我现在更新了这个问题。
var result = from r in session.Query<Registration>()
             where r.Event.ActivityId == 1 || r.Event.ActivityId == 2
             group r by r.Person into g
             where g.Min(x => x.Event.ActivityId) != g.Max(x => x.Event.ActivityId)
             select g.Key
ActivityId == 1 || ActivityId == 2
Having Count(r.Event.ActivityId) >= 2