That approach means you tend to push the crud down closer to the database as you refactor. That's good, in general, because you also tend to rewrite and refactor it away as you push down the layers. Ideally, it all gets refactored away. But in real life, that doesn't happen. What you can probably hope for are ways of isolating the troublesome stuff.

Mind you, figuring out how much knowledge of the database schema to remove from the business objects is difficult.

Wade.