Tengo un tipo de entidad llamado Imagen que hereda de la Publicación (hay otros 5 tipos de Publicaciones, todas comparten 10 propiedades comunes).División de tabla de un tipo de entidad heredada?
Desafortunadamente, la tabla de imágenes en mi base de datos incluye 4 columnas binarias con los datos de 4 versiones de la imagen en diferentes resoluciones, por lo que hay 4 propiedades del tipo de imagen EF: BinOriginal, BinHiRes, BinLowRes, BinThumbnail, que contienen grandes cantidades de datos.
Esto está afectando el rendimiento. No quiero tomar todos los datos binarios cuando estoy generando una serie de enlaces de imagen, por ejemplo.
Así que he intentado tabla de división, la colocación de los 4 campos binarios en una nueva entidad a la ImageFile: http://blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
he asegurado la correcta tabla de mapeo, añade la asociación 1-1 y contó con la restricción de referencia, pero estoy recibiendo este error:
Error 3033: Problem in mapping fragments starting at line 2731:EntitySets
'ImageFiles' and 'Publications' are both mapped to table 'Images'. Their primary
keys may collide.
... parece que hay un problema porque la mesa que se divide está involucrado en una relación de herencia.
He intentado heredar el nuevo tipo de publicación ImageFile EF, pero luego me sale un error:
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
PREGUNTA ¿Hay alguna forma de evitar esto, o es el hecho de que necesito la Imagen ¿El tipo EF para heredar de Publicación impide dividir los otros campos en un tipo nuevo?
¿Puede cambiar el esquema de la base de datos? Es decir. hacer una tabla separada para las imágenes? –
Sí, eso es lo que he hecho ahora como un "work-around" (en realidad es un mejor diseño de DB, pero fue mucho más trabajo dado que el DB ya está en producción). Mi pregunta sobre la división de tablas sigue en pie: todavía es un aspecto de EF que quiero entender. Si puede verificar/documentar que simplemente no es posible dividir una tabla que es un subtipo en una relación de herencia, eso será suficiente para que yo acepte una respuesta. – Faust
OK, entendido, pero no estoy seguro si voy a profundizar en eso :). –