使用 EF Core 将 SQLite 中的记录存档到新文件的最佳方法是什么

What's the best way to archive records in SQLite using EF Core to a new file

我有一个 .NET 6 应用程序,它在每次完成一个周期时将日志写入 SQLite 文件。我正在使用 EF Core。

该应用程序位于资源有限的 Raspberry Pi 上,因此我希望保持实时数据库较小,因为当它变大时系统会变慢。所以我想存档日志,只保留实时数据库中的最后 50 条左右的日志。

我希望创建一个方法,该方法将创建一个新的 SQLite 数据库文件,然后在创建新日志时复制最后一个最旧的记录。我还想限制存档文件的大小,一旦它在磁盘上达到一定大小,可能会拆分出来创建一个新文件。

我环顾四周,找不到任何记录在案的最佳做法。有人可以指导我实现此目标或类似目标的最佳方法吗?

我通过将 EFCore 放在一边并使用来自 SQLite-net 的 sqlite-net-pcl nuget 包解决了我的问题。

这让我能够将存档的创建分开,并且还可以应用 EFCore 不支持的其他命令,例如 vacuum。

我仍然使用 EFCore 和 Linq 查询记录以创建我的存档,然后在创建存档后再次删除这些记录。