Depende un poco (:)) de qué asignador OR esté usando, así que dedique algo de tiempo a investigar qué características de db el asignador OR en cuestión admite / no admite.
Por ejemplo, los mapeadores OR de Microsoft no son compatibles con todos los tipos de datos integrados de SQL Server, no son compatibles con algunas de las características TSQL más nuevas / avanzadas (consultas recursivas, sugerencias de optimizador, etc.).
En teoría , un buen mapeador OR debería ser lo suficientemente flexible como para superar (y permitirle mapear) un esquema de base de datos relacional bien diseñado a un buen modelo de objeto. En realidad, todavía nos queda un poco antes de que todas las piezas del rompecabezas estén en su lugar; aunque muchos mapeadores OR admiten mapeo avanzado, a menudo se producen a costa de consultas complejas y problemas de rendimiento.
Para un buen rendimiento de db (y para preservar la cordura de dba :)) aún debe seguir las mejores prácticas cuando se trata de diseño de esquema de db; normalice primero y desnormalice donde [/ if] sea necesario. En el lado del código, no vaya por la borda con su modelo de objeto ; incluso si el asignador OR admite modelos de herencia complejos y entidades que combinan muchas tablas juntas, estas también son las áreas en las que corre el riesgo de tener problemas con consultas demasiado complejas que afectan a la base de datos, etc. Perfil, perfil, perfil y no solo tome el ORM consultas generadas por sentado. Tenga en cuenta que las consultas generadas por el mapeador OR a menudo se pueden ajustar al igual que las consultas SQL normales y que dos consultas funcionalmente equivalentes en el lado del objeto (por ejemplo, consultas linq) a veces pueden dar lugar a consultas SQL muy diferentes.