1. The Mappings:
Whether it’s rolled via XML, attributes, or some fluent API, it’s something you as a developer have to maintain, so even if you let the conceptual object-model drive the design of your database, you are implicitly DDL through the mappings.
2. HQL, EQL, XQL:
It is just a DSL over SQL, which means that I still write SQL, just in another dialect. So if I can not use IQueryable, I will still write SQL, which I probably could have done more conveniently in Management Studio against my SQL DB.
We are so concentrated on getting “pure” classes and have troubles acceptiong a generated code base either created by a designer or T4 templates. We feal that these kind of solutions are highly dangerous. Why? If you handcraft your entities yourself, you usually end up with “POCO” classes that have to extend a certain base-entity and implement value-compare and INotify, etc. Isn’t it clearer and easier for future maintenacestaff, to open a designer, get an overview, being able to easilly maintain references, attributes etc? What’s so terrifying of getting the properties/state generated for you?