Ho esaminato i cosiddetti "Micro ORM" come Dapper e (in misura minore dato che si basa su .NET 4.0). Massive in quanto potrebbero essere più facili da implementare sul lavoro rispetto a un ORM completo dal il nostro sistema attuale è altamente dipendente dalle procedure memorizzate e richiederebbe un significativo refactoring per lavorare con un ORM come NHibernate o EF. Qual è il vantaggio di utilizzare uno di questi su un ORM completo? Sembra solo uno strato sottile attorno a una connessione al database che ti costringe ancora a scrivere SQL raw - forse ho sbagliato ma mi è sempre stato detto che la ragione degli ORM in primo luogo è che non hai avere scrivere SQL, potrebbe essere generato automaticamente; in particolare per i join multi-table e per mappare le relazioni tra tabelle che sono difficili da fare in puro SQL ma banali con un ORM.
Ad esempio, guardando un esempio di Dapper:
var connection = new SqlConnection(); // setup here...
var person = connection.Query<Person>("select * from people where PersonId = @personId", new { PersonId = 42 });
È tutto diverso dall'utilizzo di un livello dati ADO.NET gestito a mano, tranne per il fatto che non è necessario scrivere il comando, impostare i parametri e supponiamo mappare l'entità utilizzando un Builder. Sembra che potresti persino utilizzare una chiamata di procedura memorizzata come stringa SQL.
Ci sono altri benefici tangibili che mi mancano qui dove un Micro ORM ha senso usare? Non sto davvero vedendo come sta salvando qualcosa sul "vecchio" modo di usare ADO.NET tranne forse alcune righe di codice - devi ancora scrivere per capire quale SQL devi eseguire (che può diventare peloso) e devi ancora mappare le relazioni tra i tavoli (la parte che IMHO ORMs aiuta di più con).