Отличный вопрос, хаанси. Это то, с чем я часто сталкивался при создании сайтов малого и среднего размера. Нахождение баланса между созданием архитектуры, обеспечивающей максимальную гибкость и быстрое развертывание, - это то, к чему мы все должны стремиться во всей нашей работе.
С учетом сказанного я обнаружил, что использование шаблона репозитория весьма полезно при работе с проектами LINQ to SQL. Я связываю это с шаблоном Model View Presenter (для веб-форм или других проектов), и он обеспечивает отличную основу для повторного использования с минимальными слоями.
Моя веб-форма вызывает класс Presenter, который, в свою очередь, отвечает за заполнение представления. Чтобы заполнить это представление, докладчик может вызвать N номеров репозиториев. Репозиторий - это место, где вы инкапсулируете свой класс DataContext и ваши вызовы LINQ to SQL. Эти вызовы возвращают классы модели.
Одним из огромных преимуществ этого, независимо от размера приложения, является то, что вы можете повторно использовать свое хранилище, максимально использовать LINQ и использовать некоторые шаблоны, которые другие разработчики программного обеспечения могли бы легко читать и поддерживать .
Еще одно большое преимущество заключается в том, что вы создали простую архитектуру, в которой можно использовать модульное тестирование для тестирования от докладчика до репозитория без особых усилий.
Удачи!