Вопрос

У меня есть два стола, Reports и Visualizations. Reports имеет поле, VisualizationID, который указывает на Visualizationполе с тем же именем с помощью внешнего ключа.Он также имеет уникальный ключ, объявленный в поле. VisualizationID не обнуляется.Это означает, что отношение должно быть 0..1 к 1, потому что каждый Reports запись должна иметь уникальный, а не нулевой Visualizations запись, связанная с ним.

Entity Framework не видит это таким образом.Я получаю следующую ошибку:

Error 113: Multiplicity is not valid in Role 'Report' in relationship 'FK_Reports_Visualizations'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.

В чем здесь проблема?Как я могу заставить EF распознать правильную множественность отношений?

Это было полезно?

Решение

EF жалуется, потому что это звучит так, как будто вы используете ассоциацию FK - это означает, что VisualizationID является свойством объекта, и также есть ссылка на визуализацию - и вы не можете сделать это с помощью ассоциаций FK.

Однако, если вы используете Независимые ассоциации - что означает отсутствие свойства VisualizationID - вы может сузьте количество элементов.

Таким образом, решение состоит в том, чтобы удалить свойство VisualizationID из объекта, после чего вам нужно продолжить сопоставление ассоциации.

Надеюсь, это поможет

Алекс

Другие советы

Я только что наткнулся на ту же проблему - Алекс, ваше объяснение верно в моем случае, но, конечно, удалив столбец FK из концептуальной модели, я больше не смогу позже переключать связанный объект, изменяя значение поля FK...Мне придется вернуться к старым трюкам, чтобы сделать это!

Есть ли какие-либо планы позволить нам получить наш торт и съесть его тоже с отношениями от 1 до 0 .. 1, т. е.сможете ли вы также иметь поле FK?

Грег

(p.s.Я бы прокомментировал, но моя репутация еще недостаточно высока!)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top