2010-02-25 62 views
0

我想查询使用城堡和返回一个强类型的数组或IList以供以后在数据绑定中使用,所以从我读了ProjectionQuery将是我的最佳选择,但我将如何这个转换到投影查询:HQLBasedQuery ProjectionQuery城堡ActiveRecord/NHibernate

 HqlBasedQuery hql = new HqlBasedQuery(typeof(TrackingRule), 
              QueryLanguage.Hql, 
              "SELECT AC.TrackingRule FROM Account_Rule as AC WHERE AC.Account.ID = " + 63); 

在此先感谢

叶海亚A.Salam

回答

0

看起来你只是试图返回对象的列表。投影查询通常用于仅返回一些列,这似乎不是您在这里需要的。

你可以得到你所拥有的一个强类型的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);