У меня есть две таблицы, Reports
и Visualizations
. Reports
имеет поле, VisualizationID
, который указывает на Visualization
поле того же имени через внешний ключ. Этому также объявили уникальный ключ на поле. VisualizationID
не nullable. Это означает, что отношения должны быть 0.. От 1 до 1, потому что каждый Reports
запись должна иметь уникальное, не пустое Visualizations
запись связана с ним.
Платформа Объекта не видит его этот путь. Я получаю следующую ошибку:
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 - что означает, что визуализация является свойством объекта, и есть также ссылка на визуализацию - и вы не можете сделать Это с ФК ассоциациями.
Если вы, однако, вы используете независимые ассоциации - что означает, что нет визуализации имущества - вы могут Узкие мощности.
Итак, решение состоит в том, чтобы удалить свойство VisualizateID от объекта, в какой момент вам нужно идти вперед карту ассоциации.
Надеюсь, это поможет
Алекс
Я только что наткнулся на ту же проблему - Алекс, в моем случае ваше объяснение верно, но, конечно же, удалив столбец FK из концептуальной модели, у меня больше нет возможности позже переключить связанный объект изменив значение поля FK ... Мне придется вернуться к старым трюкам, чтобы сделать это!
Есть ли какие-то планы, позволяющие нам есть свой торт и есть его тоже с отношениями от 1 до 0..1, т.е. иметь возможность иметь поле FK?
Грег
(ps Я бы хотел прокомментировал, но моя репутация еще недостаточно высока!)