To that end Jon Skeet has already documented how to do it in his Edulinq series[0][1].
[0] Link to series: http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/defau...
[1] Download of series (found in link): https://code.google.com/p/edulinq/downloads/list
There are a couple smaller LINQ implementations out there like Linq to Amazon that you can take a look at (Linq2<insert whatever here> libraries seemed to be coming out of nowhere for a while).
http://channel9.msdn.com/shows/Going+Deep/Bart-De-Smet-Obser...
0: http://www.amazon.com/dp/1590597893/
Although this blog is dead now, the information stored within is golden. I also highly suggest De Smet's C# 5.0 unleashed book.