Таблица Entity Framework для ошибки иерархии 3034 - PullRequest
5 голосов
/ 16 августа 2010

У меня есть модель Entity Framework, использующая таблицу для каждой иерархии.Базовый класс является абстрактным и существует два производных класса.

Я хочу создать ассоциации между этими двумя производными классами и другим классом.Это отношения «многие ко многим», поэтому пройдите через объединяющуюся таблицу.

Добавление первой ассоциации - это нормально, но когда я добавляю вторую, я получаю эту ошибку:

Ошибка 3034: Проблема вфрагменты сопоставления, начинающиеся со строк 1074, 1082: два объекта с возможно разными ключами отображаются в одну и ту же строку.Убедитесь, что эти два фрагмента сопоставления сопоставляют оба конца AssociationSet с соответствующими столбцами.

Вот изображение соответствующих частей модели (ассоциации LabelImages и PresetImages являются причиной проблем):

альтернативный текст http://img810.imageshack.us/img810/9026/model1.png

1 Ответ

1 голос
/ 18 июля 2011

Немного поздно, но в любом случае:

Это на самом деле невозможно, если вы относитесь к базовой базе данных. Платформа Entity Framework создаст одну таблицу соединений для связи между таблицей изображений и таблицей продуктов, в то время как вам фактически понадобятся две разные таблицы.

Я предлагаю использовать любую другую опцию для вашей иерархии наследования в базе данных. Или поместите связь между Image и Product, а не подтипами. Вы можете добавить методы в класс продукта для фильтрации по определенному типу, один для предварительных изображений, другой для меток изображений. Или добавьте метод в свой контекстный класс для извлечения изображений определенного типа для продукта, используя OfType .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...