2012-12-13 81 views
1

我有问题,设置sqlite数据库文件自动缩小。我使用的配置数据库的代码是:配置自动缩小sqlite数据库文件与流利nhibernate

Fluently.Configure() 
      .Database(SQLiteConfiguration.Standard.ConnectionString("PRAGMA auto_vacuum=FULL").UsingFile("file.sqlite")) 
      .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Application.NHibernateSessionManager>()) 
      .ExposeConfiguration(BuildSchema) 
      .BuildSessionFactory(); 

创建后〜15000个记录数据库文件是〜1MB大。当我删除所有的数据库文件仍然是〜1MB。

如何配置sqlite使用流利的nhibernate与编译指示“auto_vacuum”?

回答

2

我不知道这适用于auto_vacuum,但与其他编译指示,我配置DB“正常”,然后执行编译作为一个更新,例如:

SessionManager.CurrentSession.CreateSQLQuery(String.Format("PRAGMA user_version = {0}", version)).ExecuteUpdate(); 

这是使用FluentNHibernate初始化像这样:

Fluently.Configure().Database(SQLiteConfiguration.Standard.UsingFile(dbPath)... 
+0

我想你的解决方案,但它不与PRAGMA auto_vacuum工作,因为文件说:“自动吸尘必须在创建表之前打开它无法启用或禁用自动。在创建表后创建真空“。 – torpederos

+1

那么在创建任何表之前只需运行一次,你试过了吗? (只是猜测在这里) –

+0

它的工作:)谢谢你的帮助。 – torpederos