Member 13586256 Ответов: 1

Произошло нарушение ограничения ссылочной целостности


Привет
Я использую WPF с использованием модели MVVM с entity framework, но я получаю эту ошибку при изменении столбца значения или внешнего ключа.Я использую SaveOptions.AcceptAllChangesAfterSave
возможность сохранить изменение из-за проблемы со скоростью или скоростью.Пожалуйста, помогите мне.

Произошло нарушение ограничения ссылочной целостности: значения свойств 'EventStatus.ID' на одном конце связи не соответствует значению(значениям) свойства 'Event.EventStatusID' на другом конце провода.

Что я уже пробовал:

_objectContext.SaveChanges(SaveOptions.AcceptAllChangesAfterSave)

1 Ответов

Рейтинг:
0

OriginalGriff

Мы не можем решить эту проблему за вас: это слишком много связано с вашими данными и тем, как вы ими манипулируете.

Происходит то, что значение остается в таблице или вставляется в таблицу, которая зависит от другой табличной информации или от которой зависят другие таблицы.

Например, если у вас есть таблица Invoices и таблица InvoiceLines, то таблица InvoiceLines будет иметь столбец InvoiceID, который ссылается на таблицу Invoices и связывает все данные вместе. Если вы удалите строку из счетов-фактур и оставите идентификаторы в строках счетов-фактур, то это приведет к сбою ссылочной целостности, поскольку есть строки, у которых больше нет счета-фактуры. Аналогично, если вы добавляете строки в строки накладных без предварительного создания соответствующей строки накладной, у вас возникает та же проблема.

Но у нас нет доступа к вашим данным или к вашим пользовательским данным, поэтому мы ничего не можем сделать, чтобы выяснить, почему это произошло!

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Как вы его используете, зависит от вашей системы компилятора, но быстрый поиск в Google имени вашей IDE и "отладчика" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Member 13586256

Но он прекрасно работает, если я использую эту функцию сохранения без параметра(Options).
_objectContext.Метод SaveChanges()

OriginalGriff

Не имеет значения - мы все равно не можем смотреть на это для вас! :смеяться:

Member 13586256

Хорошо спасибо