如何在Windows Phone中使用只读数据库?

时间:2013-04-26 12:44:44

标签: c# windows-phone-7 linq-to-sql sql-server-ce

我已经关注this article on MSDN,它清楚地描述了如何使用帮助应用程序创建数据库,然后将其作为内容加载到主应用程序中。如果数据库是只读的(我的是哪个),那么本文将介绍如何将数据库加载到独立存储中。

但是在执行此操作并对数据库执行只读查询(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
}

1 个答案:

答案 0 :(得分:3)

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