Ana Sayfa / Blog Yazılarım / .NETCORE Repository Design Oluşturma

.NETCORE Repository Design Oluşturma

  • BugraSoft
  • 17/03/2024
  • 0 Yorum
  • 179 Görüntülenme

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