0

是否可以将以下查询转换为 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
4

1 回答 1

0
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

以下状态,取所有在组中具有不同activityIds的人,这相当于

ActivityId == 1 || ActivityId == 2
Having Count(r.Event.ActivityId) >= 2
于 2011-10-18T11:23:55.013 回答