У меня есть следующий объект домена:
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. Мне нужно выбрать сумму значений для нескольких каналов за определенный период. Эти значения должны быть упорядочены по идентификатору канала. Я использую следующий запрос (в методе хранилища):
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;
}
}
Это потому, что я добавил проекцию Projection.GroupProperty ("Channel") к критериям для группировки. Есть ли способ удалить одну из проекций (Projection.GroupProperty ("Channel") из моего образца) из набора результатов или добавить группировку без проекции?