我需要使用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份报告,每位员工一份,其中“已提交”属性不为空,并且最近为该员工 >
答案 0 :(得分:1)
我对此不太确定,但请查看:
var rst = session.CreateCriteria<Report>()
.SetProjection(Projections.GroupProperty("Employee"))
.SetProjection(Projections.Max("Submitted"))
.Add(NHibernate.Criterion.Expression.IsNotNull("Submitted")).List();