Я поместил новую таблицу в свою базу данных и существует 4 таблицы, которые имеют отношения внешнего ключа с нею. Я думал, что настроил все 4 таким же образом, но я получаю эту ошибку;
Ошибка 15 Ошибок 113: Кратность не допустима в Роли 'ReportCellImage' в отношениях 'FK_OtherLeaves_ReportCellImages'. Поскольку все свойства в Зависимой Роли nullable, кратность Основной Роли должна быть '0.. 1'.
Таким образом упростить мои таблицы;
Таблица ReportCellImage содержит поле ReportCellImageId который в первичном ключе и целом числе
Таблица OtherLeave содержит поле ReportCellImageId как nullable внешний ключ со значением по умолчанию 4
Другие таблицы подобны, и всем настроили внешний ключ для присоединения к таблице ReportCellImage
Это - недавнее изменение, поэтому когда я обновляю свой edmx файл от базы данных, почему я получаю эту ошибку и как я фиксирую его?
Я удалил обновленную таблицу из модели и затем в Модели Обновления от Базы данных, добавил его снова, и она помогла.
Я использую базу данных, сначала приближаются для создания .edmx файла. Когда я столкнулся с этой проблемой, я попробовал несколько предложений выше, но все еще получал ошибки, таким образом, я удалил .edmx файл и обновил весь файл от обновленной базы данных.
я нашел, что иногда EF запутывается после обновлений существующей базы данных, и в то время как это идеально для нахождения, первопричина, проводя час, работая над чем-то не может быть возможной в рабочей среде (такой как мой)
, Наш DB является новым и маленьким настолько обновляющий, файл легок и не занимает у этого много времени.
проблема ушла, идя дальше...
У меня была та же проблема после добавления новой таблицы, я попробовал все решения здесь включая отбрасывание отношений, но это не работало. Решение, которое работало на меня, состояло в том, чтобы на самом деле удалить модель полностью и создать новую модель. Не забывайте удалять строку подключения в web.config так, чтобы Ваш новый EF смог использовать то же имя.
кратность изменения = "1" к кратности = "0.. 1 дюйм
<Association Name="FK_O_Personel_PBS_AtanmaSekilleri">
<End Type="eKampus_RTEUModel.PBS_AtanmaSekilleri" Role="PBS_AtanmaSekilleri" Multiplicity="0..1" />
<End Type="eKampus_RTEUModel.O_Personel" Role="O_Personel" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="PBS_AtanmaSekilleri">
<PropertyRef Name="ID" />
</Principal>
<Dependent Role="O_Personel">
<PropertyRef Name="atamaSekliID" />
</Dependent>
</ReferentialConstraint>
</Association>
После удаления Ссылки на сущность в классах объекта, затем удаляющих ссылку вручную в базе данных, затем откладывая их шаг за шагом для решения вопроса, я понял после того, как я закончил, быстрое решение состояло в том, чтобы заменить WithOptional WithRequired в Контексте после того, как я сначала изменил поле от nullable до не nullable.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
Эта ошибка состоит главным образом в том, потому что определения таблицы, возможно, изменились после добавления к EF. Решение состоит в том, чтобы удалить его из Модели EF и добавить снова модель обновления использования от базы данных.
Щелкните правой кнопкой по отношениям в своей схеме EDX. В свойстве, изменение Кратность END1 к 0.. 1 (Нуль или Один из YOURTABLENAME)
У меня просто было то же сообщение, и это было озадачивающим, потому что таблицы, которые я изменил в DB, отличались от тех, я получал сообщение для.
я пытался изменить кратность 0.. 1-many, но сохраненное сообщение, даже после "Запущенного Инструмента пользователя" команды, чистит и восстанавливает.
Разрешенный путем отбрасывания отношений EF жаловалась на и обновляла модель от DB