2013-01-08 2 views
0

Я использую databasefirst подход с Entity framwork и MVC 4 (asp.net) и теперь делать, а затем получить следующее сообщение об ошибке:Entity framwork лучше ошибка Объяснение

The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted.

Большинство likly У меня есть непреднамеренное нуль -reference, которая приходит, связана с любой частью шага преобразования (от представления, до viewmodel, до объекта базы данных через automapper).

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

ответ

0

Эти ошибки могут быть разочаровывающими, поскольку их трудно отследить.

Я бы начал с очистки всех данных из базы данных (если нужно, сделайте резервную копию).

Затем откройте базу данных в Studio Management Studio и перетащите таблицы на визуальный дизайнер. Затем вы получите визуальное представление о том, как выглядят отношения. Вы можете получить сюрприз!

0

Эти ошибки могут возникать, если вы изменили схему (модель) базы данных и у вашей базы данных есть некоторые данные. две или более таблицы имеют отношения с использованием внешнего ключа.

Возможное решение

падение базы данных и применять миграции снова.

+0

Удаление базы данных не является решением, так как вы теряете все данные. Вы должны сделать размещение вокруг старых данных для нового ограничения вместо этого, обновив или удалив заранее. – Alejandro

Смежные вопросы