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

Microsoft Azure : Machine Learning - Price Prediction

We'll create linear regression model that predicts price of automobile based on different variab...

Read More >

How to Print Microsoft Dynamics NAV 2013 R2 RDLC Report Page Footer on Last Page Only

As we are all know there were two properties in NAV 2009 to print footer at bottom and on last page ...

Read More >

Object Identification and Object Repositories in QTP

Object IdentificationQTP performs the operation only after identifying the object uniquely. In order...

Read More >

How to use Model Binding with ASP.NET Data Controls

IntroductionASP.NET 4.5 provides a flexible alternative to server data controls called as, Model Bin...

Read More >

Dynamics 365 Business Central: How to Record Events in Business Central

When you are developing an extension for Dynamics 365 Business Central and you need to interact with...

Read More >

Introduction to Reusable Workflows

Avoid Duplication! GitHub Actions Reusable Workflows. Thanks to this feature you can now reference a...

Read More >

SAP Intelligent RPA 2.0: End to End working scenario of Supplier Invoice Status Checks Bot. 

Introduction: These days for checking the Invoice and Payment status, most ...

Read More >

Performing Sonar Analysis for .NET projects

 Sonar Integration with TFS build for .net projectsThis document provides details about TFS and...

Read More >

Using XMPP and Openfire Server in Windows Phone 8

Implementing Extensible Messaging and Presence Protocol (XMPP) in Windows phone 8 is really a tough ...

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
  • *
  • *