In this article, we will learn how to create an ASP.NET Web API using the Repository pattern and the Entity Framework code first approach. Essentially you’ll learn how to:
- Create a core project which will contain entity and the repository interface;
- Create an Infrastructure project which will contain database operations code using the Entity Framework code first approach;
- Create a Web API to perform CRUD operations on the entity;
- Consume the Web API in a jQuery application and render the data in the Ignite UI Chart.
What is a Repository pattern?
Let us first understand why we need a Repository pattern. If you do not follow a Repository pattern and directly use the data then the following problems may arise-
- Duplicate code
- Difficulty implementing any data related logic or policies such that caching
- Difficulty in unit testing the business logic without having the data access layer
- Tightly coupled business logic and database access logic
By implementing a repository pattern we can avoid the above problems and get the following advantages:
Business logic can be unit tested without data access logic
- Database access code can be reused
- Database access code is centrally managed so easy to implement any database access policies such that caching
- Easy to implement domain logics
- Domain entities or business entities are strongly typed with the annotations.
Now that we’ve listed how great they are, let’s go ahead and start implanting a repository pattern in the ASP.NET Web API.
Create the Core project
In the core project you should keep the entities and the repository interfaces. In this example we are going to work with the City entity. So let us create a class City as shown in the listing below: