2011-10-16 107 views
2

如何修改以下查詢以進行無LINQ的分組?按NHibernate QueryOver間隔分組

public class Entity 
{ 
    public long Time { get; set; } 
} 

public IEnumerable<Entity> Query(long interval) 
{ 
    using (var session = m_sessionManager.OpenSession()) 
    { 
     return session.QueryOver<Entity>() 
      .Where(/* complex query */) 
      .List() 
      .GroupBy(e => e.Time/interval) 
      .Select(e => e.First()); 
    } 
} 
+0

你怎麼想這樣做呢? HQL,直接SQL,??? – Kendrick

+0

我可以使用QueryOver API嗎? – kshahar

+1

忽略我。我沒有正確閱讀問題標題。 – Kendrick

回答

0

實在是很難理解你從你的查詢需要,如果你發佈你想在QueryOver<> API來編寫SQL查詢這將是更好的。 但我希望這會幫助你:

return session.QueryOver<Entity>() 
      .Where(/* your complex query */) 
      .SelectList(list => list 
       .SelectGroup(e => e.Time/interval) 
       .SelectSum(e => e.whatever)) 
       .List</*what do you want to select a list of what*/>() 
       .Select(e=> e.First) //what is First and why it is with() is it a property?? 
       .ToList<...>(); 

有很多的事情可以QueryOver<> API