如何在Castle Active Record中执行'ExecuteNonQuery'

时间:2009-04-08 01:09:39

标签: c# .net castle-activerecord

我有以下代码通过我们的活动记录ORM层执行数据库级操作。

public static void Vacuum() {
  Execute(
    delegate(ISession session, object instance) {
      ISQLQuery query =
        session.CreateSQLQuery(@"
          VACUUM billableaddresses;
          ")
      query.List();
      return null;
    }, null);
}

通常当我需要做这样的非查询时(我很难承认)我简单地选择了'1';在查询之后,将Active Record置于足以执行非查询的查询。

但是,postgres'vacuum'命令必须单独运行,不能成为多语句查询的一部分。

查看ISQLQuery接口,似乎没有一个方法来执行非查询,所以我想知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

对于特定的DB调用,您可以从

获取原始IDbConnection
ActiveRecordMediator.GetSessionFactoryHolder().GetSessionFactory(typeof (object)).ConnectionProvider.GetConnection()