2

在 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
}
4

1 回答 1

3

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

于 2013-04-26T13:28:13.617 回答