Deconstructing LINQ to SQL
I happened to stumble upon the blog of Mike Taulty and the following three very interesting articles on how LINQ actually works.
The first article looks at Lambda expressions and introduces the interface IQueryable<T> which inherits from IEnumerable<T> and Expression property to represent the expression tree (Expression<T>). The second article explores the IQueryable<T> interface a bit more and applies it to a simple array of integers to explain the concepts. The third article goes a little deeper and attempts to explain how the standard ADO.NET objects like SqlConnection and SqlCommand are used to build the final Transact-SQL query.
Unfortunately it seems like the LINQ classes are a bit of a zoo meaning that it'll take a lot of patience and persistence to understand them in-depth.
I still have doubts in my mind as to whether LINQ is something really worth pursuing as I am a firm believer that application coders should not be accessing tables in database directly but should rather use SQL Server (or any other RDBMS) stored procedures as the database interface.