2012-12-13 52 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