通过 Windows Phone OS 7.1,应用程序可以使用 LINQ to SQL 将关系数据存储在本地数据库中。本主题介绍可在应用程序中与本地数据库一起使用的受支持连接字符串参数。有关使用本地数据库的更多信息,请参阅 Windows Phone 本地数据库概述。
在创建数据库之前,可以使用连接字符串指定数据库配置值。例如,连接字符串可以指定该数据库是否应该进行加密以及是否受密码保护。
在一个连接字符串中,各个参数用逗号分隔,参数值放置在单引号中。某些参数仅适用于创建数据库;在该数据库创建后,这些参数将被忽略。
下表列出了本地数据库连接字符串支持的所有参数。
|
参数 |
说明 |
|
data source 或 datasource |
本地数据库文件的文件路径和文件名。如果仅指定此连接字符串属性,则只需要该属性值即可实例化一个数据上下文对象。有关数据上下文的更多信息,请参阅 Windows Phone 本地数据库概述。
使用下面的前缀显式指定该路径的根位置。
-
isostore:路径适用于独立存储 -
appdata:路径适用于安装文件夹
如果未指定前缀,则文件路径适用于独立存储。 |
|
Password 或 Pwd 或 database password 或 ssce:database password |
数据库密码,最长为 40 个字符。如果未指定,则默认值为无密码。如果您在数据库上启用加密,则需要使用此属性。如果您指定密码,则会自动在数据库上启用加密。如果您指定一个空密码,则该数据库不会进行加密。
注意:
无法在数据库创建后进行加密。
数据库是使用 AES-128 加密的,而密码是使用 SHA-256 进行哈希处理的。 |
|
max buffer size 或 ssce:max buffer size |
本地数据库在开始将更改刷新到磁盘之前可以使用的最大内存量(以千字节为单位)。如果未指定,则默认值为 384。最大值为 5120。 |
|
max database size 或 ssce:max database size |
本地数据库的最大大小(以兆字节为单位)。如果未指定,则默认值为 32。最大值为 512。 |
|
Mode 或 file mode 或 ssce:mode |
打开数据库文件时要使用的模式。有效值如下:
-
Read Write:允许多个进程打开并修改该据库。如果未指定模式属性,则该值即为默认设置。 -
Read Only:允许您打开该数据库的只读副本。 -
Exclusive:不允许其他进程打开或修改数据库。 -
Shared Read:在您打开数据库时,允许其他进程读取,但是不允许修改该数据库。
|
|
Culture Identifier |
用于数据库的区域性代码。例如,en-US 代表“英语(美国)”。有关 Windows Phone OS 7.1 中支持的区域性代码的完整列表,请参阅 Windows Phone 区域性和语言支持。
注意:
如果此属性在连接到现有数据库时使用,则会被忽略。 |
|
Case Sensitive 或 CaseSensitive |
用来确定数据库的排序规则是否区分大小写的 Boolean 值。必须设置为 true 才能启用区分大小写的排序规则;false 表示排序规则不区分大小写。如果未指定,则默认值为 false。
注意:
如果此属性在连接到现有数据库时使用,则会被忽略。 |
重要说明: |
|
某些 Microsoft SQL Compact 连接字符串参数可能适用于此 Windows Phone 应用程序平台 发行版。建议不要使用本主题中未列出的任何连接字符串参数。 |
下面的示例演示如何对本地数据库使用连接字符串。
单个参数的用法
如果您只使用数据源属性,则不需要在连接字符串中包括属性名称,如以下示例中所示。
// Create the data context.
MyDataContext db = new MyDataContext ("isostore:/mydb.sdf")
在此示例中,isostore 前缀指示该文件位于独立存储中。
从安装文件夹中读取
安装文件夹不支持写入操作。当连接到该处的本地数据库时,必须使用 File Mode 属性将连接指定为只读。下面的示例演示如何建立与安装文件夹的只读连接。
// Create the data context.
MyDataContext db = new MyDataContext("Data Source = 'appdata:/mydb.sdf'; File Mode = read only;");
创建加密的数据库
如果需要加密数据库,则必须在连接字符串中指定一个密码,然后再创建数据库。在此示例中,在数据库创建之前指定了一个密码。
// Create the data context.
MyDataContext db = new MyDataContext("Data Source='isostore:/mydb.sdf';Password='securepassword';");
// Create an encrypted database after confirming that it does not exist.
if (!db.DatabaseExists()) db.CreateDatabase();
只读连接
下面的示例演示以只读方式连接到大型数据库。
// Create the data context.
MyDataContext db = new MyDataContext("Data Source = 'mydb.sdf'; File Mode = read only; Max Database Size = 256; Max Buffer Size = 1024;");
使用特定的区域性创建数据库
在此示例中,将创建一个具有德语区域性和区分大小写排序规则的数据库。
// Create the data context.
MyDataContext db = new MyDataContext("Data Source = 'mydb.sdf'; Culture Identifier = de-de; Case Sensitive = true;");
// Create a database after confirming that it does not exist.
if (!db.DatabaseExists()) db.CreateDatabase();