2011-10-16 3 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