Felicitaciones, te has topado con uno de los temas mas interesantes de la OO.
En resumen?
La OO y el modelo relacional SON INCOMPATIBLES y por lo tanto NO SE PUEDE RECONCILIAR DE FORMA OPTIMA.
Esto se conoce como el "Impedance Mismatch"
https://en.wikipedia.org/wiki/Object...dance_mismatch
O como "El vietnam de la computacion"
http://blogs.tedneward.com/2006/06/2...r+Science.aspx
Hay 3 modelos dominantes en la programacion:
- Orientado a Objetos
- Funcional
- Relacional
Y todos tienen mismatch entre si! Osea, que en lo "facil" no se ve el problema pero en la medida que empiezas a los detalles ves que hay cosas que en un modelo son mas faciles que en el otro. Eso se llama "El problema de la expresividad":
https://en.wikipedia.org/wiki/Expression_problem
------
Importante:
No hay forma de hacer un ORM que sea realmente bueno y compatible con un RDBMS, solo de forma "superficial".
Cualquiera que crea o diga lo contrario lo hace en una posicion de ignorancia.
---
La forma de resolverlo? Es
NO LUCHAR CONTRA EL.
Usa OO para resolver problemas OO, Funcional para funcional y relacional para relacional. Es lo mas simple, facil y descomplicado (que se traduce en terminos practicos: "Chico, tienes SQL, usalo!")