DTO is a nice pattern for data access. I find myself flip-flopping between a pure DTO+ADO.NET approach and an ORM from project to project.
Basically, I'm lazy but I want simplicity and performance. The lazy and performance parts are usually mutually exclusive. I think that there can exist a happy medium, I just haven't found it in the .NET world yet.
Personally, I prefer hand-written code over auto-generated code. Unless, I am somewhat clear about what is going under the hood, I am not comfortable. That is probably why I have not used ORMs much except Entity framework for creating RIA services. EFCF is a much cleaner option in my opinion.
Basically, I'm lazy but I want simplicity and performance. The lazy and performance parts are usually mutually exclusive. I think that there can exist a happy medium, I just haven't found it in the .NET world yet.