如何在windows phone中使用只读数据库

本文关键字:只读 数据库 phone windows | 更新日期: 2023-09-27 18:11:12

我在MSDN上阅读了这篇文章,它清楚地描述了如何使用helper应用程序创建数据库,然后将其作为Content加载到主应用程序中。如果数据库是只读的(我的数据库是),本文描述了如何不需要将它加载到隔离的存储中。

然而,在这样做并对数据库执行只读查询(Where, Select等)之后,我得到以下异常

以只读连接打开数据库。不能执行初始化后的操作,如重建索引和升级公共跟踪。请重新打开读写连接。

这意味着数据库总是需要写访问。那么,如何按照本文的建议以只读模式使用数据库呢?

这里是我正在运行的查询,

IQueryable dataQuery = null;
// This line inside a switch statement which picks a particular table of clothing
dataQuery = this.clothingDB.DressSizes;
var dataBySize = dataQuery.Cast<IClothing>().Where(q => q.Size == size);
foreach (Retailer retailer in dataBySize.Select(ds => ds.Retailer).Distinct()) {
    /// ... Do something
}

如何在windows phone中使用只读数据库

桌面发生了一些区域设置或操作系统方面的问题,现在需要在设备上重新构建索引。解决方法是将数据库文件复制一次(仅在开发期间)到隔离存储,打开数据库上下文以允许索引重建,从隔离存储中提取文件,并将更新(重建)的文件作为内容包括在内,然后从那里,您可以打开只读。