تجميع الاستعلام مع القلعة ActiveRecord
-
10-07-2019 - |
سؤال
أحاول إجراء بسيط الكلي الاستعلام بإرجاع مجموع نتيجة بالإضافة إلى عمود إضافي.هذا المنصب -> استعلام مخصص مع القلعة 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]
};
الخط بعد "من ملخص في" هو الذي يلقي صالح يلقي استثناء.
(نسيت أن أذكر:باستخدام VS2008, .صافي 3.5SP1, ActiveRecord 1.0RC3, NHibernate 1.2)
المحلول
- أعتقد أنك قصدت
count(*)
بدلا منcount(1)
(هذا هو السبب في أنك تحصل على فقط 1-العقيد الصفوف) - ActiveRecordMediator.ExecuteQuery (على الأقل في RC3) بإرجاع
ArrayList
(ليس عامICollection
) منobject[]
- كن حذرا الصب
count
نتائج الباحث.بعض قواعد البيانات المقابل يعتبرlong
(مثلا ، SQL Server)
لا تنتمي إلى StackOverflow