0

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

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

通常,当我需要进行这样的非查询时(我承认这非常罕见),我简单地输入一个 select '1'; 在足够安抚 Active Record 以将查询作为非查询执行的查询之后。

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

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

4

1 回答 1

1

对于特定的数据库调用,您可以从中获取原始 IDbConnection

ActiveRecordMediator.GetSessionFactoryHolder().GetSessionFactory(typeof (object)).ConnectionProvider.GetConnection()
于 2009-04-08T02:18:51.790 回答