0

这篇博文中,给出了一些在 Windows 应用商店应用程序中开始使用 SQLite 的先决条件代码,用于添加到 App.xaml.cs 的 OnLaunched 方法中:

// Get a reference to the SQLite database
this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "customers.sqlite");

我的问题是:我可以使用任意值来替换“customers.sqlite”部分,还是必须匹配我的代码中的其他内容,例如我的表定义类的名称(在我的例子中是“PhotraxCoreData.cs”哪个,根据格林先生的建议,我在新创建的“模型”文件夹下面添加了)?

我的理解是,一旦我定义了这些类(我做了),以及 App.xaml.cs 中的上述代码,以及那里的代码(适用于我的 SQLite 类):

using (var db = new SQLite.SQLiteConnection(this.DBPath))
{
    // Create the tables if they don't exist
    db.CreateTable<PhotraxBaseData>();
    db.CreateTable<PhotraxNames>();
    db.CreateTable<PhotraxQueries>();
}

...将创建基于我指定的那些类的 SQLite 表,并具有名称“customers.sqlite”(前提是我不更改它)。

那么,我可以使用:

this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "platypus.sqlite");

...或者必须是这样的:

this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "PhotraxCoreData.sqlite");
4

2 回答 2

1

正如 CL 所说,文件名可以是应用程序可以直接访问的任何内容。Windows 应用商店应用程序对文件系统的访问权限有限,因此 sqlite 数据库必须位于应用程序安装位置(只读)或其应用程序数据文件夹(读写)中。一种常见的模式是在应用程序包中提供一个种子数据库,然后在首次使用时将其从安装位置复制到应用程序数据中,以便可以对其进行写入。

于 2014-10-19T14:06:20.737 回答
1

该数据库名称只是一个文件名。您的应用程序必须可以访问该目录,但文件名可以是任何名称。

于 2014-10-17T17:40:14.410 回答