使用带有 sqlite-net orm 的 SQLiteConnection.Delete(object) 命令后更改 sqlite 文件大小

Posted

技术标签:

【中文标题】使用带有 sqlite-net orm 的 SQLiteConnection.Delete(object) 命令后更改 sqlite 文件大小【英文标题】:Change sqlite file size after using SQLiteConnection.Delete(object) command with sqlite-net orm 【发布时间】:2014-12-12 16:06:26 【问题描述】:

我正在使用 sqlite-net ORM。首先,我使用的是大型数据库,文件大小约为 120 mb。比我删除了该数据库的一小部分但文件大小没有改变。我正在尝试使用真空但我不能使用真空命令。我应该在哪里使用 Vacuum 命令?

public class Entities : SQLiteConnection


    public Entities(string dbPath, bool createDatabase = false)
        : base(dbPath)
    
    

我的 SQLiteConnection 在 SQLite.cs sqlite-net orm 内。

【问题讨论】:

您显示的代码中没有“真空”。 我的问题是如何在我的代码中使用 Vacuum 命令? 【参考方案1】:

这种使用 SQLitePCL 库的 sqlite 命令的快速方法。

public async Task<int> Vacuum()

     return Db.SqliteConnection.ExecuteAsync("VACUUM;");

【讨论】:

以上是关于使用带有 sqlite-net orm 的 SQLiteConnection.Delete(object) 命令后更改 sqlite 文件大小的主要内容,如果未能解决你的问题,请参考以下文章

调试符号时读取 SQLite-net.dll 失败

ORM 或其他东西可以有效地处理带有 order 列的 SQL 表

如何在带有 ARM CPU 的 WinRT 设备中部署 SQLite?

带有 SQL 后端的 Lisp OODB - 或良好的 ORM

使用带有 ORM 的 Sphinx 搜索

SQLite-Net 扩展 - GetAllWithChildrenAsync 没有拉动一切