We just completed a good sized project using Entity Framework.  As Catapult’s primary book-geek, I had to arm myself for the experience with the best volumes on EF that I could find.  The benchmark I use is that the book that is the most dog-eared at the end of the project is the best.  We have two winners which I will review here, along with the essential book on Domain-Driven Design:

  • Programming Entity Framework, Julia Lerman, from O’Reilly Press.
  • Professional ADO.NET 3.5 with LINQ and the Entity Framework, Roger Jennings, from Wrox.
  • Domain Driven Design, Eric Evans, from Addison Wesley

 

The Lerman book wins the dog-ear test hands down. Especially in the absence of David Sceppa’s long delayed Microsoft Press book, it must be regarded as the essential reference to EF.  Besides providing a comprehensive view of the framework, she dives deep into some of the daunting challenges presented by Microsoft’s first offering, especially overcoming the limitations of the EF designer and optimizing EF performance. Her detailed treatment of the intricacies of association mapping and her explorations of the quirks and trade-off of mapping stored procedures and views saved me hours of research and trouble.

Lerman’s scope extends from the micro-level of programming to the broader perspective of enterprise application architecture. A series of chapters at the end of the book place EF in the context of a number of multi-tier architecture patterns: n-tier Client Site applications; n-Tier ASP.net applications; WCF services.

The Lerman book may be all you need.  But, I found Roger Jennings, Professional ADO.NET 3.5 with LINQ and the Entity Framework, to be a very effective compliment.

Jennings places LINQ to Entities and Entity SQL in the context of the LINQ language and its many extensions such as LINQ to SQL.  He was a great help to me in understanding the dynamics of query construction for both LINQ and Entity SQL. 

For most developers it may take a while to appreciate that LINQ and EF are not just a way to embed queries in C# code, but a real paradigm shift toward a style of business logic using declarative statements rather than the procedural and iterative style we are used to. The injunction to avoid joins in favor of association references forces one’s attention to the object model rather than the database.  When we see that navigation properties are first class citizens of the model as well as entities we begin to see the model as something greater than a collection of tables represented as classes.  Jennings help bring us into this world.

Additionally the Jennings book serves as a general reference to LINQ and a much better one than many early offerings from Wrox and Apress that seemed to miss the point.  Be sure to read the short but insightful commentaries on the history of LINQ in the introduction to part 2.

To be really effective with EF you have to understand not only its technical underpinnings but also understand its place in the context of Domain Driven Design.  Eric Evans offering has come to be universally regarded as the essential work on DDD.  If you expected a dry and tediously theoretical read you will be pleasantly surprised.  It is a very accessible and immensely practical book. Giving a technology-agnostic birds eye view of DDD, as Evans does, is more helpful to the EF practitioner than technical treatments such as Jimmy Nilsson’s, Applying Doman Driven Design and Patterns, which are strongly wedded to NHibernate or some home-grown ORM experiment.