目前,我正在开发一个通过 LINQ-to-SQL 依赖(并因此连接到)各种数据库的应用程序。对于其中一个数据库,连接字符串可能会有所不同,因此是可配置的 - 但是,该数据库的架构对于所有连接字符串都是相同的。
由于可配置的连接字符串,我想在我的应用程序启动期间验证 DataContext,以确保我的应用程序使用的所有表和视图都可用。
Table<T>
对象中的对象DataContext
总是被初始化——即使相应的 SQL 表或视图没有任何记录。
那么。目前,验证检查执行如下:
bool valid = _dataContext.Articles.Count() > 0
&& _dataContext.Customers.Count() > 0
&& _dataContext.Orders.Count() > 0;
虽然这确实有效,但确定 valid 的值需要相当长的时间(每个 Table 的每条记录都被触及),最终导致超时。那么,有没有一种更快、更可靠的方法来判断某个Table<T>
的 a是否DataContext
真的作为表存在于对应的数据库中呢?