Generating data access layer is something that I always try to do to avoid writing repititive code. I've tried a lot of code generation tools, some were complicated, others I just didn't like the way they worked, I even tried to write my own code generation tool. But lately I was checking out
SubSonic and I have to say that it's great. It's super easy to setup, the generated code is easy to use and customize, and its
Query tool makes it super easy to write and execute simple queries.
If you are using stored procedures or views, you can make SubSonic wrap them for you.
Check out
this introductory webcast to get an idea of what can SubSonic do for you.