我已关注this article on MSDN它清楚地描述了如何使用辅助应用程序创建数据库,然后将其作为内容加载到主应用程序中。如果数据库是只读的(我的是),本文介绍了如何不需要将其加载到隔离存储中。
但是,在执行此操作并对数据库执行只读查询(Where、Select 等)之后,我收到以下异常
The database is opened with a read-only connection. Can't perform post-initialization operations like re-building indexes and upgrading public tracking. Please re-open with a read-write connection.
这意味着数据库始终需要写访问权限。那么如何按照本文的建议以只读模式使用数据库呢?
这是我正在运行的查询,
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
}
最佳答案
桌面上发生了区域设置或操作系统方面的问题,现在需要在设备上重建索引。解决方法是将数据库文件复制一次(仅在开发期间)到独立存储,打开数据库上下文以允许重建索引,从独立存储中提取文件,并将更新(重建)的文件作为内容包含在内,然后从那里,您可以以只读方式打开。
关于c# - 如何在Windows Phone中使用只读数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236805/