Я думаю, что аргумент pro LINQ, похоже, исходит от людей, у которых нет истории разработки баз данных (в целом).
Особенно если использовать такой продукт, как VS DB Pro или Team Suite, многие из приведенных здесь аргументов неприменимы, например:
Сложнее в обслуживании и тестировании: VS обеспечивает полную проверку синтаксиса, проверку стиля, проверку ссылок и ограничений и многое другое. Он также предоставляет все возможности модульного тестирования и инструменты рефакторинга.
LINQ делает невозможным истинное модульное тестирование, поскольку (на мой взгляд) он не проходит тест ACID.
Отладка проще в LINQ: почему? VS позволяет полный переход от управляемого кода и регулярную отладку SP.
Скомпилирован в одну DLL, а не в сценарии развертывания. Еще раз, VS приходит на помощь, где он может создавать и развертывать полные базы данных или вносить изменения в безопасные данные.
Не нужно изучать TSQL с помощью LINQ. Нет, не нужно, но вы должны изучать LINQ - в чем выгода?
Я действительно не вижу в этом пользы. Возможность что-то изменить в изоляции может показаться хорошим в теории, но только то, что изменения соответствуют контракту, не означает, что он возвращает правильные результаты. Чтобы определить правильные результаты, вам нужен контекст, и вы получите этот контекст из вызывающего кода.
Хм, слабосвязанные приложения являются конечной целью всех хороших программистов, поскольку они действительно увеличивают гибкость. Возможность менять вещи в отдельности - это просто фантастика, и именно ваши юнит-тесты будут гарантировать, что он все еще дает соответствующие результаты.
Прежде чем вы все расстроитесь, я думаю, что у LINQ есть свое место и большое будущее. Но для сложных приложений с интенсивным использованием данных я не думаю, что они готовы заменить хранимые процедуры. Эту точку зрения я поддержал MVP в TechEd в этом году (они останутся безымянными).
РЕДАКТИРОВАТЬ: сторона вещей, связанных с хранимыми процедурами LINQ to SQL - это то, о чем мне еще нужно почитать - в зависимости от того, что я найду, я могу изменить вышеупомянутую диатрибу;)