Essential LINQ (Microsoft Windows Development Series) and over one million other books are available for Amazon Kindle. Learn more

Essential LINQ 1st Edition

9 customer reviews
ISBN-13: 978-0321564160
ISBN-10: 0321564162
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Have one to sell? Sell on Amazon
Buy used
Buy new
Amazon Price New from Used from
"Please retry"
Paperback, March 22, 2009
"Please retry"
$24.93 $4.34
More Buying Choices
21 New from $24.93 29 Used from $4.34

InterDesign Brand Store Awareness Textbooks
$41.59 FREE Shipping. Only 3 left in stock (more on the way). Ships from and sold by Gift-wrap available.

Frequently Bought Together

Essential LINQ + LINQ Unleashed: for C# + LINQ For Dummies
Price for all three: $111.31

Buy the selected items together

Editorial Reviews

About the Author

Charlie Calvert, Community Program Manager for the Microsoft C# team, currently focuses his technical energies on LINQ. He has periodically worked with LINQ Chief Architect Anders Hejlsberg both during the development of Delphi and during the development of LINQ. Calvert’s ten technical books have sold more than 100,000 copies. They include Delphi 4 Unleashed, C++Builder 3 Unleashed, Delphi 2 Unleashed, Teach Yourself Windows 95 Programming in 21 Days, and Teach Yourself Windows Programming.


Dinesh Kulkarni is a Senior Program Manager on Microsoft’s .NET Framework team. He was the Program Manager in charge of LINQ to SQL. He was deeply involved in LINQ’s planning and implementation from the incubation stage and was lead author for MSDN’s authoritative LINQ to SQL paper. Before joining Microsoft, he worked in diverse technical roles ranging from architecting and implementing front-end CASE tools for IBM to designing databases and middleware for a Wall Street hedge fund.



Excerpt. © Reprinted by permission. All rights reserved.



For years I have been fascinated with the differences between general-purpose programming languages and databases. Practically every enterprise application built today is coded in a general-purpose programming language and talks to a database, yet the two ecosystems are amazingly different and quite poorly integrated—the impedance mismatch between object-oriented programming and the relational model is the gift that keeps on giving when it comes to application complexity.

But the thing I find particularly puzzling is the lack of query capabilities in general-purpose programming languages. Why is it you can query database tables but not in-memory objects? Why are XPath and XQuery so arbitrarily different from SQL? Why is it so hard to transform data between the object, relational, and XML domains? These are the kinds of questions that launched us on the Language Integrated Query (LINQ) journey. Along the way we got wise to the wonders of functional programming, lambda expressions, type inference, monads, O/R mapping, and all sorts of fascinating computer science. Fortunately, we managed to boil our learnings down to a set of pragmatic language features and APIs that are useful in practically any .NET application.

LINQ extends the .NET Framework and programming languages with a uniform model for querying and transforming in-memory collections, relational data, and XML documents. With LINQ, C# 3.0 and VB 9.0 gain the expressive power of SQL and XQuery to become the first general-purpose programming languages to natively support queries and transformations over all classes of data.

LINQ was a very interesting and unique project to work on. One reason is that it wasn’t just about language features. In order to gain experience with the query capabilities we were developing, we needed to validate them against the important data domains—objects, relational, and XML. That led us to create the LINQ to Objects, LINQ to SQL, and LINQ to XML APIs, all of which were built alongside the language features. The synergy and agility we got from having a joint team working on both language and APIs was just amazing—and loads of fun!

Also, LINQ isn’t just a single monolithic language feature, but rather a collection of several smaller and individually useful features—such as lambda expressions, extension methods, expression trees, object initializers, and anonymous types—that all come together to form the concept of Language Integrated Query. This made our work much more relevant and leveraged.

Finally, LINQ is big step toward a more declarative style of programming. This may be subtle, but it is really important. Programs written in today’s imperative programming languages are too much about the “how” and too little about the “what.” We tend to over-specify the solutions to our programming problems—for example, by deconstructing queries into for loops, if statements, manipulation of temporary collections, and so on. By the time such programs run, it is all but impossible for the execution environment to “understand” what they do. The higher level semantic meaning has been lost in a sea of imperative, low-level instructions that must be blindly executed in exact sequence. This contrasts with LINQ queries, which preserve the programmer’s exact intent and allows the execution infrastructure to be much smarter. A great example here is the Parallel LINQ (PLINQ) API that parallelizes query execution on concurrent hardware with practically no changes required to the source code.

Of course, the creation of a new technology such as LINQ is really only the first part of our job. The next step is to find ways to explain our new technology to the world of developers.

Essential LINQ is an important book because it provides a clear, easy-to-understand explanation of what LINQ does, how it does it, and the many practical ways you can use this technology to make your daily programming life easier and more productive.

Both authors of this text bring an important set of skills to this project. Throughout the development of LINQ, I worked daily with Dinesh Kulkarni in this role as Program Manager for the LINQ to SQL project. Few understand LINQ to SQL better than Dinesh, and the many insights he provides into LINQ will prove to be an invaluable tool for any reader of this book. The chapters Dinesh contributed to this book will be a resource that developers will frequently mine for their rich, well-thought-out content.

I’ve known Charlie Calvert since we worked together on Turbo Pascal and Delphi at Borland International. Charlie is an accomplished author with a gift for finding the key threads in a technology and explaining them to readers in a clear, easy-to-understand prose style. He is also one of nicest people I’ve met.

Charlie and Dinesh each bring important skills to this project that have enabled them to create an excellent book that shows how LINQ works and the many practical ways you can use it in your daily development process.

Anders Hejlsberg
Redmond, WA
February 2009

© Copyright Pearson Education. All rights reserved.


Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

Product Details

  • Paperback: 600 pages
  • Publisher: Addison-Wesley Professional; 1 edition (March 22, 2009)
  • Language: English
  • ISBN-10: 0321564162
  • ISBN-13: 978-0321564160
  • Product Dimensions: 7 x 1.2 x 9.2 inches
  • Shipping Weight: 1.8 pounds (View shipping rates and policies)
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (9 customer reviews)
  • Amazon Best Sellers Rank: #1,438,996 in Books (See Top 100 in Books)

Customer Reviews

Most Helpful Customer Reviews

4 of 4 people found the following review helpful By Justin M. James on July 31, 2009
Format: Paperback
I found Essential LINQ to be an excellent book to learn LINQ from. It was extremely easy to read, accurate, and useful. I liked that the authors took the time to explain and teach the underlying technologies. As a result, they have made LINQ approachable, even for someone with minimal experience beyond basic C# and .NET Framework knowledge. After reading this book, I felt very confident in using LINQ, and I embarked on a project which made use of it. It turns out that I did indeed learn a lot from the book, as I rarely needed to refer back to it or check the documentation. In addition, I was finding myself using many of the other concepts taught in the book, even in places that LINQ did not require them.

Some people (including another reviewer here) may say that too much time was spent on LINQ to SQL or not enough was devoted to LINQ to Entities. Honestly, I've looked at Entity Framework, and it is way too heavy for many projects. Microsoft may be pushing EF, but it won't get used in many places due to complexity, so I still see LINQ to SQL having a role to play in the future. A little more space for LINQ to Entities would have been good though. I also would have liked to see some LINQ "recipes" instead of some of the details at the end of the book.

Overall, though, this is a great book to learn LINQ from. If you are an established LINQ expert, you may want to pass on it, but if you learned LINQ "on the fly" and didn't really learn how it works or the underlying ideas, this is a bood book for you too.

Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
4 of 4 people found the following review helpful By John P. Puopolo on May 6, 2009
Format: Paperback
This is a very good introductory text to LINQ.
What I especially liked was that authors dedicated some time to nomenclature, which many other books simply omit. After establishing a solid foundation, the authors provide a digestible balance of depth and pragmatism. This is actually the third book I've read on LINQ, and wish it had been the first. While some of the other books go into technical minutiae, and may serve as comprehensive references, I think this book does a better job at explaining what LINQ is, how it works (to sufficient but not excruciating depth), and how to use it for the common business cases most of us are likely to encounter.

If you're about to learn LINQ, or have questions about some of the basics, consider reading this book.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
6 of 7 people found the following review helpful By Winston Kodogo on April 15, 2010
Format: Paperback
Well, I'd have to say stuff the Entity Framework. Those of us who have spent many years watching Microsoft change its data access APIs more frequently than many people change their underpants are hardly likely to instantly jump as soon as Microsoft announces that the API they are currently using is now so last week.

The fact that this book has excellent coverage of Linq to SQL is all in its favour, in my opinion. However, the book also has a very clear explanation of the basic concepts, is the first book on Linq that I have seen which clearly explains why we have query expressions as well as query methods, and has excellent Linq to XML coverage if you absolutely can't avoid using the filthy bloated abomination that is XML.

All in all, a most excellent book, a pleasure to read, and highly recommended.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback
Linq is an interesting new capability added to C#, according to the book. It extends the ability of C# and .NET to access data. Eventually, other languages supported by .NET can be expected to have Linq.

The problem is the impedance mismatch between any object oriented language and a relational database. In Java, Hibernate addresses this issue. Linq is the C# analog. But Linq goes further in some ways, by letting queries to XML data and to sets of C# classes be written in the same manner as for querying SQL. This unified notation can ease the programmer's job. Though perhaps it should be said, since the book doesn't seem to do so, that the impedance mismatch between OO and XML or a set of classes within the OO language is fairly minimal. Reading in XML from a file gives data that is [often] inherently a set of objects. While if you have a set of object classes within an OO language, then surely there is no mismatch. Which is why these haven't been big issues within java or C++. Granted, the unified notation of Linq is still handy to support all 3 cases.

The practical reality is that most data is stored in SQL, and the book devotes 4 chapters to explaining Linq to SQL. If you are going to use Linq, it's these chapters you need.

Another advantage of Linq is in the declarative nature of the queries. At least in spirit this mimics SQL. More to the point, it frees up some of the burden from the programmer, by reducing the amount of imperative code she has to write. Which also reduces the chances of bugs in that code.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback
This book was very good. It was easy to understand yet gave a large amount of details and explanations. My only wish is that they would have spent more time talking about best practices for using LINQ in an n-tier ASP.NET environment.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
Essential LINQ
This item: Essential LINQ
Price: $41.59
Ships from and sold by