One of most repetitive, boring and thus error prone tasks when accessing databases from C# (or other language) is writing SQL commands. And when there is explicit SQL, no matter whether it's in stored procedures or inside your code, it has to be maintained. For instance if column is added to database, that one must be added to all 4 commands (INSERT, SELECT, UPDATE, DELETE - aka CRUD), and there are often more than one SELECTs with different filters. There are certainly times when you must write some SQL, but it would be better if machine could create as much as possible. This article is about writing some code that can do that job. It was made for SQL Server but you shouldn't have too much problems to customize it to db you use.
More info