Sto entrando nello schema del repository (che adoro), e mentre lo leggevo vedo questo pattern di UnitOfWork in molti articoli. Prima di sapere qualcosa su UnitOfWork stavo semplicemente usando il mio pattern di repository all'interno del mio livello di servizio (business logic). Questo sembra funzionare alla grande quindi mi chiedo perché avere un altro livello (ad esempio UnitOfWork) possa essere utile?
Perché dovrei volere un layer UnitOfWork nel mio livello di servizio / business logic? Se il tuo livello di servizio è sufficientemente specifico e non copre tutto ciò che è sotto il sole, non sembra che sia necessario.
Nota che sto guardando questo da una prospettiva EF. Ho persino letto articoli in cui la gente menziona che DbContext di EF è un UnitOfWork. Allora, perché creare il mio UnitOfWork se EF DbContext lo fa già per me? Perché non creare il mio DbContext nel mio livello di servizio e quindi richiamare i repository di cui ho bisogno e fare tutto bene?
Il repository che ottengo perché semplifica il test dei miei servizi, ma non vedo il vantaggio di un UnitOfWork specialmente se si sta utilizzando un ORM.