我已经关注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
}
答案 0 :(得分:3)
桌面上出现了一些区域设置或操作系统,现在需要在设备上重建索引。解决方法是将数据库文件复制一次(仅在开发期间)到独立存储,打开数据库上下文以允许索引重建,从隔离存储中提取文件,并将更新(重建)文件作为内容包括在内,然后从那里,你可以打开只读。