Un'istanza di DataContext non deve essere utilizzata come Singleton. Un'istanza di DataContext deve essere utilizzata in un UnitOfWork (un modello completamente diverso).
Se utilizzi il modello del ciclo di vita appropriato per le istanze di DataContext, raramente dovrai gestire dati obsoleti e non dovrai mai gestire una singola connessione al database condivisa tra più thread.