Both methods push you to check or dismiss when I work.
Cm:
This is a complex issue that has been resolved over 20 years using things like UnitOfWork templates or repository templates. Tons of projects for this - delete βC #β (no, man, the world does not recover around one langauge) and look for objects / relational maps. I remember that I used it 20 years ago with the help of samlltalk and wrote 10 years ago in C #, sometimes .NET developers, with large manipulations of text strings, were up to date.
NHibernate, Entity Framework, hell, even BlToolkit, as my preferred lightweight toolkit these days shows you the right templates.
source share