2011-05-25 90 views
1

我需要使用NHibernate標準查詢來查找員工成員提交的最新報告。我確定我需要使用預測,但我無法解決如何設置它。NHibernate Criteria查詢選擇每個類型的最近項目

我的域模型的釋義:

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份報告,每名員工之一,與所提交的財產是不是null ,並且是該員工的最近的一個

回答

1

我不太清楚這一點,但檢查出來:

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

也許你不知道,但我上午我已經基本上用在我的項目中完全相同的查詢和它完美的作品。 – 2011-05-25 15:04:44

+0

感謝您的回答。基本上返回一個項目,這是一個DateTime對象。 – harriyott 2011-05-25 15:07:42