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