NHibernate Criteria查询以选择每种类型的最新项目

时间:2011-05-25 13:25:53

标签: c# nhibernate criteria

我需要使用NHibernate条件查询查找员工提交的最新报告。我确定我需要使用投影,但我无法确定如何设置它。

我的域名模型的解释:

public class Employee
{
  public int Id {get; set;}
  public string Name {get; set;}
}

public class Report 
{
  public int Id {get; set;}
  public DateTime? Submitted {get; set;}
  public Employee Employee {get; set;}
  // Other report properties omitted
}

如果有5名工作人员,每人有7份报告,则查询应返回5份报告,每位员工一份,其中“已提交”属性不为空,并且最近为该员工 >

1 个答案:

答案 0 :(得分:1)

我对此不太确定,但请查看:

var rst = session.CreateCriteria<Report>()
                .SetProjection(Projections.GroupProperty("Employee"))
                .SetProjection(Projections.Max("Submitted"))
                .Add(NHibernate.Criterion.Expression.IsNotNull("Submitted")).List();