1

我在将 sqlite 数据库文件设置为自动收缩时遇到问题。我用来配置数据库的代码是:

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。

如何使用 fluent nhibernate 配置 sqlite 以使用 pragma "auto_vacuum"?

4

1 回答 1

3

我不确定这是否适用于 auto_vacuum,但是对于其他 pragma,我“通常”配置 db,然后将 pragma 作为更新执行,例如:

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

这是使用 FluentNHibernate 初始化的,如下所示:

Fluently.Configure().Database(SQLiteConfiguration.Standard.UsingFile(dbPath)...
于 2012-12-13T16:39:04.847 回答