我有以下代码通过我们的活动记录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接口,似乎没有一个方法来执行非查询,所以我想知道如何做到这一点?
答案 0 :(得分:1)
对于特定的DB调用,您可以从
获取原始IDbConnectionActiveRecordMediator.GetSessionFactoryHolder().GetSessionFactory(typeof (object)).ConnectionProvider.GetConnection()