SharePoint understands only CAML queries hence even if you use LINQ your LINQ query would be converted to CAML queries and then it would be processed to form a SQL query to fetch data from database. benifits of LINQ easy to use and join results from multiple datasources. So where ever possible use it with your object model codes. whenever you trying to access the data using webservice CAML is recommended approach.
A Library is a List, but all lists are not libraries.Lists:Can have attachments Have major versions only Do not have Check-in/Check-out features Libraries:Cannot have attachments (files are directly in the library) Have both minor (draft) and major (published) versioning Have Check-in/Check-Out Publishing Libraries can use Page Layouts Have Unique Document Ids out of the box
CAML is the one query language which is understandable by SharePoint. When we use the LINQ query SharePoint will convert LINQ into CAML