Я бы также добавил, что способ обработки вашего DataContext будет зависеть от
а. Характер вашего приложения.
б. Бизнес-требования.
Таким образом, если вы разрабатываете веб-приложение с IIS или любым другим веб-сервером, поддерживаемым с помощью .net, лучше использовать новый экземпляр DataContext для каждой единицы работы (атомарной операции) из-за характера модели обработки связан с этим случаем разработки тонкого клиента.
Однако, если ваше приложение запускается в процессе, который в высокой степени контролируется в части его выполнения и состояния (WinForms, WPF), и вы хотите, чтобы ваш datacontext работал в контексте UserSession (один единственный DataContext на пользователя на сеанс), вы можете связать его создание с моментом запуска приложения и утилизировать его, когда приложение должно быть выгружено. Вы также можете посмотреть на использование шаблона Singleton для этого.