ヘルパー アプリケーションを使用してデータベースを作成し、それをコンテンツとしてメイン アプリケーションにロードする方法を明確に説明している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
}