Estoy empezando a trabajar en un nuevo proyecto que sería mucho más fácil si hubiera alguna manera de hacer que los diferentes modelos de datos sean polimórficos. Estoy buscando utilizar Entity Framework 4.0 (cuando se lanzó), pero no he podido determinar si realmente podrá funcionar.¿Existe un .NET Framework de Datos Polimórficos
Aquí está el escenario básico. Implementé un sistema de comentarios y me gustaría poder conectarlo a muchos tipos diferentes de modelos. Tal vez quiera comentarios en el perfil de una persona y comentarios en una página web. La forma en que haría esto en el pasado es crear relaciones entre la tabla de persona y la tabla de comentarios separadamente de la relación entre la tabla de página web y la tabla de comentarios. Sin embargo, creo que esto lleva a una estructura de tabla demasiado complicada en la base de datos.
Sería mejor si pudiera agregar una interfaz a los objetos sobre los que quiero comentarios, y luego simplificar la estructura de la tabla en la base de datos a una sola relación.
El problema al que me estoy enfrentando es que no parezco conocer la terminología correcta para encontrar información sobre cómo hacer este tipo de cosas. Cualquier ayuda que alguien pueda brindar sería muy apreciada.
Sí, este es exactamente el tipo de cosas en las que estaba pensando. Esperaba que hubiera una forma de manejar el tipo de conversión de forma transparente, pero parece que voy a tener que morder la bala y hacerlo. En este caso, tendría que comprobar el target_object_id, así como el comment_type, que probablemente solo sea el System.Type del objeto de destino. No he necesitado trabajar mucho con eso, así que parece que voy a aprender. – Josh
Bueno, esto es asumiendo que su objetivo es reducir el número de tablas en su base de datos, que yo reuní de la pregunta original. En su lugar, me inclinaría a crear "tablas mapeo" para cada tipo de comentario, pero aun así mantener todos los comentarios en una tabla de comentarios. Si tiene una tabla "post_comments" con una columna post_id y una columna comment_id, puede consultarla cuando su vista o modelo necesite los comentarios para una identificación de correo postal en particular, no se requiere conversión de texto. – Jay
sí, es correcto, para reducir el número de tablas y la cantidad de código que se debe escribir. En un mundo perfecto, funcionaría algo así como las mezclas de Ruby, pero eso no es realmente posible en C#. No es gran cosa, solo esperaba haberme perdido algo. – Josh