在 UWP 应用程序中包含带有数据的 SQLite DB 文件

Nic*_*dko 2 sqlite entity-framework-core windows-10 uwp

我正在尝试在 UWP 应用程序中包含一个 SQLite 文件。SQLite 文件中有许多填充数据的表。

数据库(至少现在)是只读的,我计划使用 EF Core 来访问数据。

所以我有两个问题:

  1. 将此文件与应用程序捆绑的正确方法是什么。
  2. 如何编写文件路径以从 UWP 应用程序访问该文件?

将 .sqlite 文件的“复制到输出目录”设置为“始终复制”似乎将文件复制到 bin 文件夹,但我似乎无法弄清楚访问它的路径。当将 SQLite 连接字符串设置为“Filename=databasename.sqlite”时 - 它似乎在别处创建了一个空白的 DB 文件,因为尝试访问任何表会引发表未找到异常。

提前致谢!

Mam*_*toh 5

我的建议是...

  1. 将 .db 文件包含到您的 AppX 包中。要包含它,请将 .db 文件添加到项目中的 Assets 文件夹中。
  2. 然后,在第一次启动您的应用程序时,您应该将 .db 文件从 Assets 复制到您的应用程序的本地文件夹。因为,SQLite 本身无法访问 Assets 文件夹。它只能访问您的应用程序的本地或临时文件夹。

我已经在 MSDN 论坛上回答了类似的问题。也请参考。

[UWP] SQLite.net 路径问题?

  • 那是为了回复!此外,正如我所发现的 - 您需要在 DB 文件上将构建操作设置为“内容” - 否则它不会复制到输出 AppX 文件夹中,即使它位于您项目的 Asset 文件夹中。 (2认同)