【问题标题】: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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多