I don't like them, and never have. The database is not just a byproduct of the class design. The database is a discrete component of the system with its own standards and performance tools. It will probably be around, and be relevant, long after the application code has been relegated to an archive tape somewhere.
In a good design there is a strong correspondence between the entities in the DB and the classes in the app at runtime, but I believe in layers, and think each tier ought to be as decoupled from the others as practical. My favorite approach is to have a thin layer of data adapter classes that call stored procedures. This is a nice approach in terms of decoupling, permissions granularity, and performance.