Repository veritabanına erişen ve o veritabanında CRUD işlemleri yapan katmandır. Kodun geri kalanı yani controls ve services katmanının veritabanı ayrıntılarından soyutlamak yani doğrudan veritabanı bilgilerini görmemek veya bilmemek

Repository Örneği

Örnek olarak Product adında tablo var normalde böyle cağırırız



public class ConcertController
{
        public List<Concert> GetAll()
        {
                using (var context = new AppDbContext())
                {
                        return context.Concerts.ToList();
                }
        }
}
}
    

Bu durumda direk olarak controller veritabanına dokanmiş oluyor kod test edilmez hale geliyor,Aynı sorguları birçok yerde tekrar etmke durumunda kalıyoruz ayrıca mimariya karşi