У меня есть тип объекта, называемый Image, который наследуется от Publication (существует 5 других типов публикаций, все имеют 10 общих свойств).
К сожалению, таблица Image в моей БД включает в себя 4 двоичных столбца с данными для 4-х версий изображения при разных разрешениях, поэтому есть 4 свойства типа изображения EF: BinOriginal, BinHiRes, BinLowRes, BinThumbnail, которые содержат очень большие объемы данных.
Это влияет на производительность. Я не хочу брать все двоичные данные, когда я просто создаю серию ссылок на изображения, например.
Итак, я пробовал разбиение таблиц, поместив 4 двоичных поля в новый объект ImageFile a la: http://blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
Я обеспечил правильное сопоставление таблиц, добавил ассоциацию 1-1 и включил ссылочное ограничение, но я получаю эту ошибку:
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.
... кажется, существует проблема в том, что разделяемая таблица участвует в отношениях наследования.
Я пробовал наследовать новый ImageFile EF-тип из публикации, но потом я получаю сообщение об ошибке:
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
ВОПРОС Есть ли какой-либо путь вокруг этого, или тот факт, что мне нужен тип изображения EF для наследования из публикации исключить разделение других полей на новый тип?