No tak ale to w takim wypadku po co pytać poprzez LINQ skoro aby pobrać dane do programu to i tak musimy je wyciągnąć z bazy danych.
Nie, nie musimy. W ogóle nie musimy mieć bazy danych.
LINQ operuje na dowolnych kolekcjach danych w pamięci, czyli tablicach, listach, słownikach.
LINQ to XML pozwala na robienie tego samego na plikach XML.
A żeby móc połączyć LINQ z bazą danych potrzebny jest po pierwsze jakiś ORM (aby zmapować relacje na klasy) oraz LINQ provider konwertujący nasze wyrażenia w kod SQL.
Kiedyś można było pytać dane przez LINQ to SQL - bardzo prosty i ograniczony ORM, teraz już od dawna jest nierozwijany, więc nie ma sensu się go uczyć.
Jeśli korzystamy z Entity Frameworka, to musimy korzystać z LINQ to Entities.
Jeśli korzystamy z NHibernate, to możemy korzystać z NHibernate.Linq.
Tak więc - LINQ jako technika zapytań to nie to samo, co ORM, który posiada API w postaci LINQ.