Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mehmetalierol/21a889ac8452777229473a1eb446f219 to your computer and use it in GitHub Desktop.
Save mehmetalierol/21a889ac8452777229473a1eb446f219 to your computer and use it in GitHub Desktop.
using Company.Application.Common.Repository;
using System;
namespace Company.Application.Common.UnitofWork
{
/// <summary>
/// Oluşturacağımız UnitofWork sınıfının içermesi gereken metotlara ait imzaları bu kısımda tanımlayacağız.
/// UnitofWork sınıfını türetirken doğrudan değil bu interface'i kullanarak türeteceğiz Böylece dependency injection yaparak
/// kodumuza esneklik kazandırmış olacağız.
/// </summary>
public interface IUnitofWork : IDisposable
{
/// <summary>
/// Gerektiğinde repository instance oluşturmak için kullanılacak.
/// </summary>
/// <typeparam name="T">Hangi entity miz için repository oluşmasını istiyorsak o sınıfı gönderiyoruz</typeparam>
/// <returns></returns>
IGenericRepository<T> GetRepository<T>() where T : class;
bool BeginNewTransaction();
bool RollBackTransaction();
/// <summary>
/// Veritabanında işlemlerin yapılması emrini veren kısım olacak
/// Repository içerisinde kuyruğa aldığımız tüm işlemler bu metot çalıştırıldığı anda sırası ile veritabanında değişikliğe uğrayacak
/// </summary>
/// <returns></returns>
int SaveChanges();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment