Asp.Net Core Repository Pattern Örneği


Asp.Net Core Repository Pattern Örneği



Asp.Net Core ile yaptığım örneklerin yer aldığı yazı dizisine devam ediyorum. Yine bir diğer önemli başlık olan Repository Pattern ve bu yaklaşımın nasıl projeye entegre edileceğini paylaşacağım.

Geliştirmeleri .Net Core 3.0 ve Visual Studio 2019 versiyonları ile yapıyorum. Sizde güncel versiyonları kullandığınızdan emin olun.


Repository Pattern Nedir ?


Repository Pattern veya diğer Pattern yaklaşımları özellikle kurumsal uygulama tasarımları yaparken, alt yapıyı (infrastructure) belirlerken sıkça başvurduğumuz yöntemler diyebilirim. Bu noktada Repository Pattern , veritabanı crud işlemlerinde DRY (Don’t repeat yourself) felsefenin gerekliliğiyle oluşturulan yardımcı bir sınıftır.

Entity Modelleriniz için create,read vb veritabanı işlemlerini bu sınıf üzerinden erişebilecek ve bir kez yazdığımız için tüm DB Entity Modelleri için geçerli olacaktır. Bu tarz soyut yaklaşımları kod örnekleri üzerinden anlamak daha kolay olacağı için örneğe göz atın.


Asp.Net Core Repository Pattern Örneği


Öncelikle bir önceki Asp.Net Core EF Code First Örneği yazıma göz atın. Bu proje temelinden devam etmeniz sağlıklı olacaktır.

Yazıyı okuduğunuzu varsayarak devam ediyorum... Şimdi elimizde Sehir ve Ilce sınıfları var. Bunlar Veritabanında ki tablolara denk gelen sınıflar. Bu tablolardan birisine select sorgusu atmak istiyoruz. Önce nasıl olmaması gerekiyor onu bir yazalım.



Şimdi üzeride yer alan kod bizim işimizi görüyor. SehirRepository isimli bir repository oluşturduk ve gelen isteği döndürüyoruz. Fakat burada getAll() isimli fonksiyonu tüm repositorylere tek tek eklememiz gerekir. Ve bu uygun değil.

Bunun için IRepository isminde T tipinde nesne alan bir sınıf yaratacağız. Bu sınıfı ise oluşturduğumuz repository'e miras (inheritance) vereceğiz. Aşağıdaki kodlamaları takip eder ve uygularsanız küçük ölçekli bir Repository Pattern uygulamış olacaksınız.



Sorularınız için yorum atabilirsiniz , iyi çalışmalar

Yorumlar

Bu blogdaki popüler yayınlar

Asp.Net Mvc Bundle Kullanımı

Brackets Eklentileri

Asp.Net Web Güvenliği : SQL Injection