@Bas: I have a small number of T4 templates to generate property-compatible DTOs from ADO.NET datasets (so we can migrate data to web services, etc) -- the template ensure that when fields are added or removed from the datasets, the DTOs match.

In my previous job I had code generation scripts that read database schema and created our own custom DTOs and services (this was .NET1.1 and no one had heard of generic object mappers).