【问题标题】:HQLBasedQuery to ProjectionQuery Castle ActiveRecord/NHibernateHQLBasedQuery 到 ProjectionQuery Castle ActiveRecord/NHibernate
【发布时间】:2010-02-26 02:44:22
【问题描述】:
我正在尝试使用 Castle 进行查询并返回一个强类型数组或 IList 以供以后在数据绑定中使用,因此从我读取 ProjectionQuery 将是我的最佳选择,但我将如何将其转换为投影查询:
HqlBasedQuery hql = new HqlBasedQuery(typeof(TrackingRule),
QueryLanguage.Hql,
"SELECT AC.TrackingRule FROM Account_Rule as AC WHERE AC.Account.ID = " + 63);
提前致谢
叶希亚·萨拉姆
【问题讨论】:
标签:
nhibernate
castle-activerecord
【解决方案1】:
看起来您只是想返回一个对象列表。投影查询通常用于仅返回一些列,这似乎不是您需要的。
你可以得到一个强类型的 ArrayList :
HqlBasedQuery hql =
new HqlBasedQuery(typeof(TrackingRule), QueryLanguage.Hql,
"SELECT AR.TrackingRule FROM Account_Rule as AR WHERE AR.Account.ID = "
+ 63);
ArrayList resultsList = (ArrayList) ActiveRecordMediator.ExecuteQuery(hql);
这是一个返回数组的替代方法:
SimpleQuery<TrackingRule> sq =
new SimpleQuery<TrackingRule>(
"SELECT AR.TrackingRule FROM Account_Rule as AR WHERE AR.Account.ID = "
+ 63);
TrackingRule [] arrayOfTrackingRules =
(TrackingRule []) ActiveRecordMediator.ExecuteQuery(sq);