LINQ n'est pas destiné à être SQL. Il s'agit d'un langage de requête aussi indépendant que possible de la source de données. Maintenant, il est vrai qu'il a un biais SQL fort, mais il n'est pas destiné à simplement intégrer SQL dans le code source (heureusement).
Personnellement, je grandement préfèrent la syntaxe de LINQ à SQL. En particulier, la commande est beaucoup plus logique dans LINQ. Juste en regardant l'ordre des clauses de la requête, vous pouvez voir l'ordre logique dans lequel la requête est traitée. Vous commencez avec une source de données, vous effectuez éventuellement un filtrage, une commande, etc. et vous terminez généralement par une projection ou un regroupement. Comparez cela avec SQL, où vous commencez à dire quelles sont les colonnes qui vous intéressent, sans même savoir de quelle table vous parlez. Non seulement LINQ est plus logique à cet égard, mais il permet aux outils de mieux fonctionner avec vous - si Visual Studio sait de quelles données vous disposez, alors quand vous commencez à écrire une clause select
(par exemple) vous aider avec IntelliSense. En outre, il permet à la traduction des expressions de requête LINQ en "notation par points" d'être relativement simple en utilisant des méthodes d'extension, sans que le compilateur ait à connaître les détails de ce que la requête fera réellement. Donc de mon point de vue: non, LINQ serait beaucoup pire s'il avait suivi servilement la syntaxe de SQL.