Le projet Linq(Language INtegrated Query) n'est finalement qu'une extension du C# 3.0...
Linq offre des fonctionnalités de requêtage sur des sources de différentes natures(base de données relationnelles, document XML, collection d'objet) tout en gardant la même syntaxe, plus pratique pour les développeurs, en une phrase : le compilateur corrige la syntaxe de la requête et IntelliSense aide à en coder.

Donc Linq se divise en trois parties comme le montre ce schéma:

Linq to Ado.Net:
Linq to sql: le mapping objet-relationnel simple.
Linq to Entities: le mapping objet-relationnel plus complexe.
Linq to Datasets: requêter sur les Datasets.

Linq to objects:
Requêter sur une collection( possibilité de récupérer un graphe d'objet).

Linq to XML:
Pour les documents XML(tout en rendant accessible des notions potentiellement complexes telles que XPath, XQuery, XSLT...).
L'idée et l'objectif principale de Linq est claire à savoir : Manipuler des types de données différentes de manière plus simple, intuitive et unique. Personnellement je pense que c'est réussit!
Pour plus d’information :
msdn microsoft