問題があります。リストexternalIdsにあるIDを持つ人のデータベースレコードから選択する必要があります。その後、すべての人に最新の StartTime を持つレコードを 1 つだけ選択する必要があります。たとえば、SetProjection (GroupProperty および Max プロパティ) を試してみましたが、その結果、PersonnelPresence のリストが必要なときに StartTime のリストのみが返されます。私の方法は次のようになります:
public IList<PersonnelPresence> GetLastPersonnelPresencesForPeopleExternalIds(IList<string> externalIds)
{
            ICriteria criteria = Session.CreateCriteria(typeof(PersonnelPresence), "pp").CreateCriteria("pp.Person", "p")
                .Add(Restrictions.In("p.ExternalId", externalIds.ToList()))
                .SetProjection(Projections.ProjectionList()
                .Add(Projections.GroupProperty("p.Id"))
                .Add(Projections.Max("pp.StartTime")));
            return criteria.List<Object>() as List<PersonnelPresence>;
}
私の問題を解決する方法を知っている人はいますか? 前もって感謝します。