Я пытаюсь выполнить простой запрос агрегата, который возвращает результат агрегата плюс дополнительный столбец. В этом посте -> Пользовательский запрос с Castle ActiveRecord был хороший пример того, как этого добиться, но я не могу заставить его работать. Кажется, что ActiveRecordMediator.ExecuteQuery возвращает ArrayList объектов (вместо ArrayList объекта [], что я и ожидал). Кроме того, если я пытаюсь привести его к ICollection, я получаю сообщение об ошибке во время выполнения, сообщающее о неверном приведении. Код ниже, любая помощь приветствуется (не хочу использовать рукописный sql).
HqlBasedQuery query = new HqlBasedQuery(typeof(Something), @"select count(1),
p.Name from Something p
where p.SomeDate > :date
order by p.Name
group by p.Name");
query.SetParameter("date", new DateTime(2009, 1, 1));
var results = from summary in
(ICollection<object[]>)ActiveRecordMediator.ExecuteQuery(query)
select new {
Count = (int)summary[0], Name= (string)summary[1]
};
Строка после «from summary in» - это строка, которая выдает недопустимое исключение приведения.
(Забыл упомянуть: использование VS2008, .NET 3.5SP1, ActiveRecord 1.0RC3, NHibernate 1.2)