Attualmente sto sviluppando un'applicazione che dipende (e quindi si connette a) vari database tramite LINQ-to-SQL. Per uno dei database, la stringa di connessione può variare ed è quindi configurabile, tuttavia lo schema di questo database è identico per tutte le stringhe di connessione.Modo rapido per rilevare se esiste una tabella o una vista DataContext
A causa della stringa di connessione configurabile, voglio convalidare DataContext durante l'avvio della mia applicazione, per assicurarmi che tutte le tabelle e le viste che la mia applicazione utilizza siano disponibili.
Gli oggetti Table<T>
nell'oggetto DataContext
sono sempre inizializzati, anche se la tabella o vista SQL corrispondente non ha alcun record.
Quindi quindi. Attualmente, il controllo di convalida viene eseguita come segue:
bool valid = _dataContext.Articles.Count() > 0
&& _dataContext.Customers.Count() > 0
&& _dataContext.Orders.Count() > 0;
Anche se questo funziona, la determinazione del valore di validità acquisisce un bel po 'di tempo (ogni record di ogni tabella viene toccato), che alla fine si traduce in un time out . Quindi, esiste un modo più rapido e affidabile per determinare se uno DataContext
esista o meno esattamente come una tabella nel database corrispondente?
A piccolo miglioramento: usa il metodo di estensione Any() invece di Count()> 0. Non è una risposta alla domanda reale, però. –
@ Jørn - dovresti postarlo come risposta, perché penso che sia l'opzione migliore qui ... –