Review of Excellent Book: Linq in Action
"LINQ in Action", published by Manning, is by far the best book available on Linq, both for those new to Linq and those already following it. The authors, Fabrice Marguerie, Steve Eichert, and Jim Wooley, have done a fabulous job of explaining Linq from the basics to the advanced. They even made it enjoyable to read, which makes it one of the best .Net books ever!
The authors' introductory chapter shows us right away that this book is different by presenting a perfect balance of the problem, the history, and the solution. Linq is a huge subject, but the authors are up to it, and they quickly whet the readers appetite for all of Linq -- Objects, Sql, and Xml. We then get a very thorough explanation of the new language enhancements that Linq relies on, but which the authors clearly show to have uses of their own. The chapter on Linq's building blocks, covering sequences, query operators, query expressions, and expression trees, was especially instructive to me, even though I've followed Linq from the alpha days, so again I'm sure this book has something for everyone. The book then covers Linq to Objects very thoroughly, including common scenarios and performance considerations that other books never consider.
The book then progresses to three chapters on Linq to Sql, which are of course my favorite since I'm really into O/R Mapping. The authors cover not just the basics to get beginners up to speed, but they also cover far more advanced content than I was expecting. For instance, they discuss not just the designer to setup mappings, but also the SqlMetal tool, and manual mappings using either attributes or xml. They also discuss the various concurrency options, the entity life cycle, inheritance, and more. The authors then give us three chapters on Linq to Xml, which again have something for everyone -- I especially like the chapter on common scenarios. The book finishes with a very thorough chapter on extending Linq, with a Linq to Amazon example, and a chapter that ties it all together with a real-world example that was gradually put together during the course of the entire book.
The authors also provide additional support and material online, including a bonus chapter on Linq to Datasets. There is also downloadable code in both C# and VB, although the book actually shows both languages in most cases, and always points out the differences when there are differences between them.
Disclaimer: I personally know Jim and have seen him present on Linq multiple times, Steve was a user of my WilsonORMapper, even contributing to it, and I've known Fabrice in the online world for quite some time too -- but I did very much enjoy and learn even more from their most excellent book on Linq.