Je pense que l'argument pro LINQ semble venir de personnes qui n'ont pas d'antécédents en matière de développement de bases de données (en général).
Surtout si vous utilisez un produit comme VS DB Pro ou Team Suite, de nombreux arguments avancés ici ne s'appliquent pas, par exemple:
Plus difficile à maintenir et à tester: VS fournit une vérification complète de la syntaxe, une vérification de style, une vérification des référentiels et des contraintes, etc. Il fournit également des capacités complètes de test unitaire et des outils de refactorisation.
LINQ rend les vrais tests unitaires impossibles car (dans mon esprit) il échoue au test ACID.
Le débogage est plus facile dans LINQ: pourquoi? VS permet une intervention complète depuis le code managé et le débogage régulier des SP.
Compilé dans une seule DLL plutôt que dans des scripts de déploiement: une fois de plus, VS vient à la rescousse où il peut créer et déployer des bases de données complètes ou apporter des modifications incrémentielles sécurisées pour les données.
Pas besoin d'apprendre TSQL avec LINQ: Non, vous ne l'avez pas, mais vous devez apprendre LINQ - quel est l'avantage?
Je ne vois vraiment pas cela comme un avantage. Être capable de changer quelque chose de manière isolée peut sembler bon en théorie, mais ce n'est pas parce que les changements remplissent un contrat que cela donne les bons résultats. Pour être en mesure de déterminer quels sont les résultats corrects, vous avez besoin de contexte et vous obtenez ce contexte à partir du code d'appel.
Euh, les applications faiblement couplées sont le but ultime de tous les bons programmeurs car elles augmentent vraiment la flexibilité. Être capable de changer les choses de manière isolée est fantastique, et ce sont vos tests unitaires qui garantiront que les résultats sont toujours appropriés.
Avant que vous ne vous fâchiez tous, je pense que LINQ a sa place et a un grand avenir. Mais pour les applications complexes et gourmandes en données, je ne pense pas qu'il soit prêt à remplacer les procédures stockées. C'était un point de vue auquel j'avais fait écho par un MVP de TechEd cette année (ils resteront sans nom).
EDIT: Le côté procédure stockée LINQ to SQL est quelque chose que je dois encore lire plus - en fonction de ce que je trouve, je peux modifier ma diatribe ci-dessus;)