Tengo una pregunta muy similar a este, How do you build extensible data model, en lo que respecta a la construcción de una aplicación que utiliza un modelo de datos extensible, excepto usando EF 4.La construcción de un modelo de datos extensible, EF 4
Mi requisito es ser capaz de Permitir que los usuarios de mi aplicación extiendan el modelo de datos en tiempo de ejecución sobre la marcha. Actualmente estamos trabajando en la construcción del sistema y hemos utilizado EF como la capa DAL, con clases de POCO generadas a partir de la plantilla T4 estándar.
Respondiendo a esta publicación de Ayende, http://ayende.com/blog/3498/multi-tenancy-extensible-data-model, como un resumen conciso de las opciones, hemos tomado la opción de una columna xml en una tabla que nos permite poner casi cualquier cosa allí sin necesidad de recompilar.
Según tengo entendido, el enfoque de mesa extendida sería mejor, parece funcionar muy bien para la dinámica de CRM, sin embargo, ¿cómo/sería posible al usar EF 4 sobre la marcha?
¿Cuáles son sus objetivos de diseño para estas extensiones? ¿Desea admitir la programación actual contra estas extensiones, como el soporte de CRM para proporcionar un envoltorio de servicios web fuertemente tipado que incluya propiedades extendidas, o solo necesita permitir que los usuarios almacenen datos adicionales para entidades en su modelo? La forma en que se utilizarán estas extensiones afectará la forma en que aborda el problema. –
No es la programación actual como en intellisense, pero desde la perspectiva de la interfaz de usuario sí, necesitaría poder obtener una lista de las propiedades asociadas en una entidad y luego permitirle al usuario crear consultas ad-hoc contra estas. El problema con el enfoque xml es que las consultas generadas serán lentas, mientras que la división en tablas relacionales debería mejorar notablemente el rendimiento. – stu432