So far we've created, with the aid of the Entity Framework, a simple domain model and the corresponding SQL Server database schema. Now, in order to complete the typical 3-tier application architecture, we need to create an additional abstraction layer that will hide the methods and properties exposed by the Entity Framework to the other layers and that will provide a set of customized query and CRUD methods. To do this, create a new class library project with the name of
APRESS.TimeTracker.DataLayer if you didn't create it already in the introductory steps.
This new layer will hold the implementation of a simple Unit of Work and four different repository classes: