Это довольно плохая идея - вы создаете большой масштабируемый веб-сайт, поэтому позвольте Linq-to-sql обрабатывать само соединение.
Linq-to-sql внутренне обрабатывает открытие и освобождение соединения эффективным способом для его использования. Он использует пул соединений ADO.NET по умолчанию, поэтому соединение используется повторно и не открывается для каждого отдельного контекста.
Использование единого соединения для всего контекста - это именно то, что делает ваше приложение не масштабируемым и не работает. Одно соединение допускает только одну транзакцию, поэтому, если два запроса захотят внести параллельные изменения и использовать свою собственную транзакцию, ваше приложение будет аварийно завершено.
Не делитесь контекстами и не делитесь соединениями - пусть ADO.NET обрабатывает пулы соединений и создает новый контекст для каждого отдельного запроса, или вы можете ожидать серьезных проблем.