Supponendo che ci sono due interfaccia repository:Le migliori pratiche di attuazione di unità di lavoro e il modello repository utilizzando ServiceStack.ORMLite
interface IFooRepository
{
void Delete(int id);
}
interface IBarRepository
{
void Delete(int id);
}
e un'interfaccia IUnitOfWork come:
interface IUnitOfWork : IDisposable
{
void Commit();
void Rollback();
}
ciò che è le migliori pratiche di implementare tali interfacce utilizzando ServiceStack.ORMLite in modo che l'utente possa utilizzarli come
MyFooRepository.Delete(4);
// if an Exception throws here, Bar won't be deleted
MyBarRepository.Delete(7);
O
using (var uow = CreateUnitOfWork())
{
MyFooRepository.Delete(4);
MyBarRepository.Delete(7);
uow.Commit(); //now they are in an transaction
}
Si consiglia di evitare l'utilizzo dell'UOW tanto è possibile Passare a una transazione aperta come quella è generalmente un pessimo progetto. (Nelle precedenti revisioni ero colpevole di questa roba anch'io) modellista –