Вы можете прочитать немного о домене, управляемом дизайном.
С практикой доменного управления (DDD) у вас есть богатая «доменная модель», в которой вы выражаете проблемный домен, который вы хотите решить.
Эта модель предметной области состоит из классов (и структур), с помощью которых вы моделируете свои бизнес-объекты.
Модель предметной области также состоит из репозиториев.
Репозиторий - это некая абстракция, которую вы используете в своей модели предметной области (и в своем приложении); Репозиторий - это абстракция вашего хранилища данных. Через хранилище вы можете извлекать сущности и использовать хранилище для сохранения сущностей.
В вашем случае ваши репозитории могут использовать Linq To SQL для связи с базой данных.
Однако обратите внимание, что ваш репозиторий не должен нести ответственность за управление (открытие / закрытие) соединением и транзакцией (запуск / принятие / откат).
Зачем ? -> потому что репозиторий не знает и не понимает контекст, в котором он используется. Именно ваше приложение или сервисный уровень (уровень, который использует модель вашего домена и, следовательно, ваш репозиторий), должен отвечать за открытие нового соединения и запуск / принятие транзакций. (Или в вашем случае откройте новый DataContext).
Затем вы можете передать DataContext в хранилище.
(у Эрика Эванса есть отличная книга о DDD, хотя время от времени он крепкий орешек).