Entity Framework 4.0: ошибка 113: множественность недействительна в роли
Я поместил новую таблицу в свою базу данных, и есть 4 таблицы, у которых с ней есть отношение внешнего ключа.
Я думал, что я настроил все 4 таким же образом, но я получаю эту ошибку:
Ошибка 15 Ошибка 113: множественность недействительна в роли "ReportCellImage" в отношении "FK_OtherLeaves_ReportCellImages". Поскольку все свойства зависимой роли имеют значение NULL, множественность главной роли должна быть "0..1".
Итак, чтобы упростить мои таблицы,
Таблица ReportCellImage содержит
ReportCellImageId, которое в первичном ключе и целое число
Таблица OtherLeave содержит
ReportCellImageId как нулевой внешний ключ с по умолчанию 4
Другие таблицы похожи, и у всех есть внешний ключ, настроенный для соединения с таблицей ReportCellImage
Это недавнее изменение, поэтому, когда я обновляю свой файл edmx из базы данных, почему я получаю эту ошибку и как ее исправить?
Ответы
Ответ 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 путается после обновлений существующей базы данных, и хотя она идеально подходит для поиска основной причины, потратить час на что-то может быть невозможно в рабочей среде (такой как моя)
Наша БД является новой и небольшой, поэтому обновление файла легко и не займет много времени.
Проблема исчезла, двигаясь дальше.,