現在、LINQ-to-SQLを使用してさまざまなデータベースに依存する(したがって接続する)アプリケーションを開発しています。いずれかのデータベースでは、接続文字列が変更される可能性がありますが、このデータベースのスキーマはすべての接続文字列で同じです。DataContextテーブルまたはビューが存在するかどうかを簡単に検出する方法
構成可能な接続文字列のため、アプリケーションの起動時にDataContextを検証して、アプリケーションで使用するすべてのテーブルとビューを使用できるようにしたいと考えています。
オブジェクトDataContext
のTable<T>
オブジェクトは、対応するSQLテーブルまたはビューにレコードがない場合でも、常に初期化されます。
だから。これは仕事をしながら
は、有効な値の決意が最終的にタイムアウトになり、かなりの時間を(各表のすべてのレコードをタッチする)、かかる bool valid = _dataContext.Articles.Count() > 0
&& _dataContext.Customers.Count() > 0
&& _dataContext.Orders.Count() > 0;
次のように現在、妥当性チェックが行われます。だから、DataContext
のTable<T>
が実際に対応するデータベースのテーブルとして存在するかどうかを判断するために、より高速で信頼性の高い方法がありますか?
Aのように
DataContext.ExecuteQuery
メソッドを使用します小さな改善:Count()> 0の代わりにAny()拡張メソッドを使用してください。実際の質問には答えはありません。 –@Jørn - 私はそれがここの最良の選択だと思うので、答えとして投稿する必要があります... –