Entity Framework 4.0: ошибка 113: множественность недопустима в роли - PullRequest
61 голосов
/ 15 февраля 2012

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

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

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

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

OtherLeave содержит поле ReportCellImageId в качестве допускаемого значения.внешний ключ со значением по умолчанию 4

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

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

Ответы [ 9 ]

60 голосов
/ 14 января 2013

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

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

Устранено путем удаления отношения, на которое EF жаловался, и обновления модели из БД

58 голосов
/ 15 февраля 2012

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

8 голосов
/ 17 июня 2015

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

4 голосов
/ 06 апреля 2017

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

2 голосов
/ 28 ноября 2017

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

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

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

0 голосов
/ 11 марта 2019

Эта ошибка в основном из-за того, что определения таблиц могли измениться после добавления в EF. Решение состоит в том, чтобы удалить его из EF Model и снова добавить, используя обновление модели из базы данных.

0 голосов
/ 24 сентября 2018

Изменить кратность = "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>
0 голосов
/ 05 января 2017

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

protected override void OnModelCreating(DbModelBuilder modelBuilder)

0 голосов
/ 15 июня 2016

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...