2009-02-15 36 views
1

我有以下域对象:NHibernate的标准API,预测和导致

public class Data 
{ 
    public virtual int ID { get; set; } 
    public virtual DateTime TimeStamp { get; set; } 
    public virtual int Value { get; set; } 

    public virtual Channel Channel { get; set; }  

} 

我使用存储库从Rhino.Commons。我需要在一段时间内为少数几个频道选择数值的总和。这些值应按通道ID排序。我用下面的查询(在库法):

var criteria = DetachedCriteria.For<LiveData>() 
      .Add(Restrictions.Le("TimeStamp", startDate)) 
      .Add(Restrictions.Ge("TimeStamp", endDate)) 
      .Add(Restrictions.InG<Channel>("Channel", channels)) 
      .SetProjection(Projections.Sum("Value")) 
      .SetProjection(Projections.GroupProperty("Channel")); 

long[] result = ReportAll<long>(criteria, Projections.ProjectionList(), Order.Asc("Channel")); 

和我在最后一行收到错误,因为该查询返回不长号码列表。它返回这样的对象列表(它的工作原理与它):

public class ResultValue 
{ 
    public virtual Channel Channel { get; set;} 
    public virtual int Value { get; set; } 
    public ResultValue() 
    {    
    } 

    public ResultValue(int value, Channel channel) 
    { 
     this.Value = value; 
     this.Channel = channel; 
    } 
} 

这是因为我已经添加Projections.GroupProperty(“通道”)投影的标准做了分组。有没有办法从结果集中删除投影中的一个投影(Projections.GroupProperty(“Channel”))或添加没有投影的分组?

回答