Digamos que tiene 2 mesas: Mensaje y SuperMessage¿Puedo mezclar tabla por jerarquía y tabla por tipo en Entity Framework?
y 3 entidades: Mensaje (base (no abstracta)), Comentario (hereda de mensaje) y SuperMessage (hereda de Mensaje)
mensaje no tiene una campo de Tipo de mensaje que se puede nulos que se usa como un discriminador.
- MessageType = 1 significa que es un mensaje
- MessageType = 2 significa que es un comentario a
- MessageType = 3 Y y unirse a la SuperMessage significa que es un SuperMessage
El problema es que no puedo especificar una condición en MessageType de la sección de detalles de asignación de SuperMessage porque no puede ver el campo MessageType y no puedo ignorarlo.
¿Cómo puedo hacer que funcionen uno junto al otro?
ACTUALIZACIÓN Build Error:
Error 3014: Problema en fragmentos de mapeo: La clave externa 'restricción de clave externa 'FK_SuperMessage_inherits_Message' de SuperMessage tabla (ID) al mensaje de mesa (MessageId):' no se está aplicando en el modelo. Se debe crear una relación de asociación o herencia para hacer cumplir esta restricción.
Si simplemente ignora MessageType para SuperMessage y permitir que el Herencia de TPT para entrar en juego, ¿funciona o se obtiene un error? – jeremcc
@jeremcc sí Lo he probado y me sale el error (que acabo de agregar más arriba) – BritishDeveloper
Jugando con un simple ejemplo yo mismo. Te dejaré saber lo que encuentro. – jeremcc