Last weekend I attended Pablo’s Fiesta, an open spaces conference in Austin, Texas. There were some great sessions and discussions from everything from working remotely for Github, contributing to open source, to using NuGet at in the enterprise.
One particularly interesting session that I attended was a review of a framework that had been on my radar: Highway.Data.
It provides a consistent, clean and testable interface for data access around Entity Framework, NHibernate, or RavenDb using
an opinionated approach to data access patterns.
Highway.Data is composed of a Repository, Unit of Work (data context), and command/query object patterns for reading and manipulating data. It nicely separates the core framework from the ORM adapters such as Highway.Data.EntityFramework.
Here is an excellent run-down of the patterns and quality attributes the framework uses to guide its development: http://hwyfwk.com/blog/2013/10/19/understanding-the-patterns/. One thing that is relatively uncommon in most data access libraries here is the concept of a Query object. Refer to the aforementioned post for more discussion on that and the benefits you get from using the pattern.
This is likely going to be my go-to for using when building out projects with Entity Framework that need a good testing story.