
.NETCORE Repository Design Oluşturma
Merhaba, Daha önceki 2 blogumuzda .NET Core ile ekleme silme güncelleme ve listeleme işlemlerini yapmıştık fakat bu büyük projelerde sıkıntı oluyor karışıyor güncelleme hariç diğer tüm metodlar birbirinin aynısı olacağı için güncelleme hariç hepsini ortak olarak Repository sınıfına ekleyeceğiz.
İlk önce Modelin içine Interface sınıfımızı ekliyoruz.
Interface ekliyoruz projeye.
Daha sonra üst kısım şu şekilde olacak.
public interface IRepository<T> where T: class |
Ve kod bloğuna şunu yazıyoruz
IEnumerable<T> GetAll(); //
Tümünü Getir T Get(Expression <Func<T, bool>> filtre); // Koşullu getirme void Ekle(T entity); void Sil(T entity);
void
SilAralik(IEnumerable<T> entities); // belli aralığı silme |
Şimdi interface’i class’a çeviriyoruz. Class ekliyoruz
projeye.
Daha sonra üst kısım şu şekilde olacak.
public class
Repository<T> : IRepository<T> where T : class |
Ve kod bloğuna şunu yazıyoruz
private readonly UygulamaDBContext _dbContext; internal DbSet<T> Dbset; public Repository(UygulamaDBContext dbContext) { _dbContext = dbContext; this.Dbset =
_dbContext.Set<T>();
} public void Ekle(T entity) { Dbset.Add(entity); }
public T Get(Expression<Func<T, bool>> filtre) { IQueryable<T>
sorgu = Dbset; sorgu =
sorgu.Where(filtre); return
sorgu.FirstOrDefault(); }
public IEnumerable<T> GetAll() { IQueryable<T>
sorgu = Dbset; return sorgu.ToList(); }
public void Sil(T entity) { Dbset.Remove(entity); }
public void SilAralik(IEnumerable<T> entities) {
Dbset.RemoveRange(entities); } |
Daha sonra KitapTürü interface’i oluşturuyoruz ve üste şu kısmı yazıyoruz
public
interface IKitapTuruRepository: IRepository<KitapTuru> |
Ve kod bloğuna şunu yazıyoruz
void Guncelle(KitapTuru kitapTuru); void
Kaydet(); |
Şimdi oluşturduğumuz interface’in sınıfını oluşturuyoruz ve üst kısma şunu yazıyoruz
public class
KitapTuruRepository : Repository<KitapTuru>, IKitapTuruRepository |
Ve kod bloğuna şunu yazıyoruz
private readonly UygulamaDBContext _dbContext; public
KitapTuruRepository(UygulamaDBContext dbContext) : base(dbContext) { _dbContext = dbContext; }
public void
Guncelle(KitapTuru kitapTuru) {
_dbContext.Update(kitapTuru); }
public void Kaydet() {
_dbContext.SaveChanges(); } |
Bu kadardı. Bir sonraki blogumuzda Controller'ımızı güncelleyeceğiz.
Yorumlar
henüz yorum bulunamadı
Yorum Yap