Мой совет: будь ленивым. Написание объемного кода - это хороший способ сделать ошибки «мертвого мозга» (неправильный тип данных, нулевые проверки, отсутствующие Dispose () и т. Д.), И он обладает нулевым преимуществом по сравнению со многими вспомогательными инструментами. *
Лично я большой поклонник брезгливости (но я несколько предвзят), что облегчает задачу:
int customerId = ...
var orders = connection.Query<Order>(
@"select * from Customers where CustomerId = @customerId",
new { customerId });
Что сделает для вас параметризацию и материализацию без боли и тупо быстро.
Для других сценариев, в частности, когда вы хотите использовать методы OO для обновления системы, ORM, такой как EF или L2S, сэкономит вам время работы (и даст вам лучшую проверку типов через LINQ).