目前,我正在開發一個應用程序,該應用程序通過LINQ-to-SQL依賴(並因此連接到)各種數據庫。對於其中一個數據庫,連接字符串可能會有所不同,因此可以進行配置 - 但是,對於所有連接字符串,此數據庫的架構是相同的。快速檢測DataContext表或視圖是否存在
由於可配置的連接字符串,我想在我的應用程序啓動過程中驗證DataContext,以確保我的應用程序使用的所有表和視圖都可用。
對象中的Table<T>
對象始終被初始化 - 即使對應的SQL表或視圖沒有任何記錄。
那麼。
bool valid = _dataContext.Articles.Count() > 0
&& _dataContext.Customers.Count() > 0
&& _dataContext.Orders.Count() > 0;
雖然這工作,有效價值的確定需要相當長的時間(每個表的每一條記錄被觸摸),這最終導致超時:目前,按照如下進行驗證檢查。那麼,是否有更快,更可靠的方法來確定某個DataContext
的Table<T>
是否確實作爲相應數據庫中的表存在?
一小改進:使用Any()擴展方法而不是Count()> 0.不過,這並不是真正問題的答案。 – 2009-07-02 13:01:05
@Jørn - 你應該將其作爲回答,因爲我認爲這是最好的選擇... – 2009-07-02 13:29:14