Uma instância de DataContext não deve ser usada como Singleton. Uma instância de DataContext deve ser usada em um UnitOfWork (um padrão completamente diferente).
Se você usar o padrão de ciclo de vida apropriado para instâncias do DataContext, raramente terá que lidar com dados obsoletos e nunca terá que lidar com uma única conexão de banco de dados compartilhada entre vários threads.