Подтвердить что ты не робот

Entity Framework 4.0: ошибка 113: множественность недействительна в роли

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

Ошибка 15 Ошибка 113: множественность недействительна в роли "ReportCellImage" в отношении "FK_OtherLeaves_ReportCellImages". Поскольку все свойства зависимой роли имеют значение NULL, множественность главной роли должна быть "0..1".

Итак, чтобы упростить мои таблицы,

Таблица ReportCellImage содержит ReportCellImageId, которое в первичном ключе и целое число

Таблица OtherLeave содержит ReportCellImageId как нулевой внешний ключ с по умолчанию 4

Другие таблицы похожи, и у всех есть внешний ключ, настроенный для соединения с таблицей ReportCellImage

Это недавнее изменение, поэтому, когда я обновляю свой файл edmx из базы данных, почему я получаю эту ошибку и как ее исправить?

4b9b3361

Ответ 1

Если ваш FK является нулевым, ваша множественность в основной сущности должна быть 0..1 - значение по умолчанию не имеет роли в этом, потому что вы можете назначить значение null для FK. Таким образом, все ваши зависимые объекты должны быть в отношении 0..1 - * к вашей основной сущности.

Ответ 2

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

Я попытался изменить кратность 0..1-to-many, но сообщение сохранилось даже после команд "Запустить пользовательский инструмент", очистит и перестроит.

Решено путем отбрасывания отношения EF жаловался и обновлял модель из DB

Ответ 3

Щелкните правой кнопкой мыши на связи в диаграмме EDX. В proprety измените END1 Кратность на 0..1 (ноль или один из YOURTABLENAME)

Ответ 4

Я удалил обновленную таблицу из модели, а затем в "Обновить модель из базы данных", добавив ее снова, и она помогла.

Ответ 5

У меня была такая же проблема после добавления новой таблицы, я пробовал все решения здесь, включая удаление отношений, но это не сработало. Решение, которое сработало для меня, состояло в том, чтобы полностью удалить модель и создать новую модель. Не забудьте удалить строку подключения в файле web.config, чтобы ваш новый EF мог использовать одно и то же имя.

Ответ 6

После удаления ссылки Entity в классах сущностей, затем удалив ссылку вручную в базе данных, затем поэтапно откладывая их, чтобы решить проблему, которую я понял после того, как я закончил быстрое решение, было бы заменить WithOptional WithRequired в Контекст после того, как я сначала изменил поле с нулевого значения на не-нулевое.

protected override void OnModelCreating(DbModelBuilder modelBuilder)

Ответ 7

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

Я обнаружил, что иногда EF путается после обновлений существующей базы данных, и хотя она идеально подходит для поиска основной причины, потратить час на что-то может быть невозможно в рабочей среде (такой как моя)

Наша БД является новой и небольшой, поэтому обновление файла легко и не займет много времени. Проблема исчезла, двигаясь дальше.,