Acceso asíncrono a la DB
Not blocking the thread isn’t actually the most important issue: a connection normally can’t be used asynchronously anyway (i.e. this approach will work only if you send your queries on different connections). Grouping of multiple queries together is normally more important: you anyway can do some work on the client while the query is executed; but if queries are relatively simple, grouping them together saves lots of roundtrips to database. Many ORMs (NHibernate, DataObjects.Net at least) provide support for future (delayed) queries, that are more attractive from this point.