Actualmente, estoy desarrollando una aplicación que depende de (y por lo tanto se conecta a) varias bases de datos a través de LINQ-to-SQL. Para una de las bases de datos, la cadena de conexión puede variar y, por lo tanto, es configurable; sin embargo, el esquema de esta base de datos es idéntico para todas las cadenas de conexión.Forma rápida de detectar si existe una tabla o vista DataContext
Debido a la cadena de conexión configurable, quiero validar el DataContext durante el inicio de mi aplicación, para asegurarme de que todas las tablas y vistas que utiliza mi aplicación estén disponibles.
Los objetos Table<T>
en el objeto DataContext
siempre se inicializan, incluso si la tabla o vista SQL correspondiente no tiene ningún registro.
Entonces,. Actualmente, la comprobación de validación se realiza de la siguiente manera:
bool valid = _dataContext.Articles.Count() > 0
&& _dataContext.Customers.Count() > 0
&& _dataContext.Orders.Count() > 0;
Si bien esto funciona, la determinación del valor del período de validez desde hace bastante tiempo (cada registro de cada tabla se toca), que finalmente resulta en un tiempo de espera . Entonces, ¿existe una manera más rápida y más confiable de determinar si realmente existe Table<T>
de un cierto DataContext
como una tabla en la base de datos correspondiente?
Un pequeña mejora: utilice el método de extensión Any() en lugar de Count()> 0. Sin embargo, no es una respuesta a la pregunta real. –
@ Jørn: deberías publicarlo como respuesta, ya que creo que es la mejor opción aquí ... –