Ich arbeite am Asp.net MVC-Projekt. Ich folgte dem link, um generisches Repository zu erstellen.Ist es gut, alle Tabelleneigenschaften in der UOW-Klasse zu haben (generisches Repository-Muster)
public class UnitOfWork : IDisposable
{
private LeisureEntities context = new LeisureEntities();
private IGenericInterface<cust_order> _customerOrderRepository;
private IGenericInterface<tblCustomer> _customerMasterRepository;
public IGenericInterface<cust_order> CustomerOrderRepository
{
get
{
return _customerOrderRepository = new GenericRepository<cust_order>(context);
}
}
public IGenericInterface<tblCustomer> CustomerMasterRepository
{
get
{
return _customerMasterRepository = new GenericRepository<tblCustomer>(context);
}
}
public void SaveChanges()
{
context.SaveChanges();
}
private bool disposed = false;
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
context.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
Kann ich erklären alle Repositorys in UOW Klasse als Eigenschaften und dann direkt mit diesen UOW in der Steuerung oder Service-Layer verwenden. Das heißt, ich werde nur zwei Klassen in DAL 1 Generic Repository-Klasse und eine UOW-Klasse mit allen Eigenschaften von DB-Tabellen haben.
Muss ich separate UOW für jede Tabelle erstellen.
Ich benutze Datenbank ersten Ansatz.
Bitte vorschlagen.
Dies ist fantastisch, aber ich kann nur einen Teil dieses Projekts zu verstehen. Ich habe viele Fragen, aber keine Antworten. warum savechanges() in der generischen Repository-Klasse, wie man eine Transaktion erreicht und owow. Wenn Sie Code für eine Kategorie Serviceklasse einfügen können, wird es hilfreich sein –
Weil Sie arbeiten durch diese Generic Repository. Alles in EF ist standardmäßig eine Transaktion. Alles passiert auf EF-Proxies Ihrer Entitäten. Sie können zum Beispiel 20 Eigenschaften ändern und wenn Sie SaveChanges aufrufen, wird alles auf einmal passieren. Sie können GenericService implementieren, in dem Sie die allgemeine Funktionalität zwischen den Diensten festlegen können –