Web API 2 With Repository pattern - Blogs
X
13Jun

Web API 2 With Repository pattern

Web API 2 With Repository pattern

How to create Repository pattern in web API 2.

Overview of Repository Pattern

RepositoryChartFlow

The repository pattern is intended to create an abstraction layer between the data access layer and the business logic layer of an application. It is a data access pattern that prompts a more loosely coupled approach to data access. We create the data access logic in a separate class, or set of classes called a repository with the responsibility of persisting the application's business model.

Using the Repository Pattern has many advantages:

1. Your business logic can be unit tested without data access logic.

2. The database access code can be reused

3. Your database access code is centrally managed so easy to implement any database

     access policies, like caching

4. It’s easy to implement domain logics.

5. Your domain entities or business entities are strongly typed with annotations; and more.

 

Steps to create repository pattern in web API 2.

Here I am going to show a small example how to retrieve and insert data using webApi2.

In this project, I have created 3 separate folders.

Services, ViewModel, Repository.

Folders

Create View Model Classes

    public class EmpViewModel

    {

        public int ID { get; set; }

        public string Name { get; set; }

        public string Address { get; set; }

        public string Phone { get; set; }

    }

Create Generic Interface.

    public interface IGenericDetails

    {

        IEnumerable GetAll();

        IEnumerable GetByID(int id);

        bool Insert(EmpViewModel dt);

        bool Update(EmpViewModel dt, int id);

        bool Delete(EmpViewModel dt, int id);

     }

Create API Controller

Controller1 

Controller2

 

Create Repository

    public class EmployeeDetails : IGenericDetails

    {

        ApiDBEntities db = new ApiDBEntities();

        public IEnumerable GetAll()

        {

            var items = db.Tbl_DetailsRepository.Select(i =>

                       new EmpViewModel { ID = i.ID, Name = i.Name, Address = i.Address,

                                         Phone = i.Phone });

            return items.ToList();

        }

        public IEnumerable GetByID(int id)

        {

            var result = db.Tbl_DetailsRepository.Where(i => i.ID == id).Select(i =>

                         new EmpViewModel {ID = i.ID, Name = i.Name, Address = i.Address,

                                   Phone = i.Phone});

            return result.ToList();

        }

        public bool Insert(EmpViewModel dt)

        {

            Tbl_DetailsRepository dr = new Tbl_DetailsRepository();

            dr.Name = dt.Name;

            dr.Address = dt.Address;

            dr.Phone = dt.Phone;

            db.Tbl_DetailsRepository.Add(dr);

            var Result = db.SaveChanges();

            if (Result == 1)

            {

                return true;

            }

            else

            {

                return false;

            }

        }

 

Conclusion :-

reason to use the repository pattern is to allow the separation of your business logic and/or your UI from System.Data.Entity. There are numerous advantages to this, including real benefits in unit testing.

                   as we know every 2 years new ORM will be launch in the market. So if we use/follow this pattern it will be very easy to switch to any ORM by changing only the connection.

Related

Taints and Tolerations

Taints and tolerations are used to restrict the pods to schedule them onto respective nodes. There i...

Read More >

NAV – Connecting External SQL

This blog is intended to see how Microsoft Dynamics NAV (here onwards NAV) can be connected to exter...

Read More >

LDAP Integration with Jenkins

In this document, we are going to see the integration process of LDAP and Jenkins. The default insta...

Read More >

Canarys is a finalist for 2014 Microsoft ALM partner of the year award from INDIA

Bangalore, Karnataka, India — May 29, 2014 — Canarys, today announced it has been named ...

Read More >

Authoring custom release gates

Authoring custom release gates

Read More >

GitHub Action context and its Capabilities

The GitHub context contains information about the workflow run and the event that triggered the run.

Read More >

How to Install TestNG framework (Step by Step installation process)

Steps to Install Eclipse using install new Software:Step 1: In Eclipse, on top menu bar, Under Help ...

Read More >

Unit testing in .NET

Unit Testing – ExplainedA process which involves writing code to verify a system at a lower an...

Read More >

DevOpSmartBoard - User Capacity

Capacity is the amount of time a team member has to work on the requirement in each sprint. It is im...

Read More >

Converting UserControl into a dll

User controls are containers into which you can put markup and Web server controls. You can then tre...

Read More >

Share

Try DevOpSmartBoard Ultimate complete Azure DevOps End-to end reporting tool

Sign Up

  • Recent
  • Popular
  • Tag
Tags
Monthly Archive
Subscribe
Name

Text/HTML
Contact Us
  • *
  • *