Una instancia de DataContext no debe usarse como Singleton. Una instancia de DataContext está destinada a ser utilizada en una UnitOfWork (un patrón completamente diferente).
Si utiliza el patrón de ciclo de vida apropiado para las instancias de DataContext, rara vez tendrá que lidiar con datos obsoletos y nunca tendrá que lidiar con una única conexión de base de datos compartida entre varios subprocesos.