Подтвердить что ты не робот

Entity Framework - "Произошла ошибка при обновлении записей. Подробнее см. Внутреннее исключение"

У меня проблема, я только начал изучать EF Model First и Im оставаться в одной точке в течение некоторого времени. Я получил такую ​​ошибку:

"Произошла ошибка при обновлении записей. Подробнее см. внутреннее исключение"

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

Я публикую скриншот с Диаграммой/Сгенерированной DLL/Простой Основной/И бросает ошибку

model and stuff

Ссылка для большего размера: http://i.imgur.com/bKGc4wv.png

4b9b3361

Ответ 1

Поверните Pluralization On. Проблема заключается в том, что вы моделируете объект, используя соглашение об исключительном имени (Pupil), в то время как в вашей базе данных вы используете множественные имена Pupils с s.

UPDATE

Этот пост показывает, как вы можете включить или выключить его. Некоторые соответствующие выдержки из этого поста:

Чтобы включить или выключить множественное число

  • В меню Сервис выберите пункт Параметры.

  • В диалоговом окне "Параметры" разверните Инструменты базы данных. Примечание. Выберите Показать все параметры, если узел инструментов базы данных не отображается.

  • Нажмите O/R Designer.

  • Установите для параметра Pluralization для имен значение Enabled = False, чтобы конструктор O/R не изменял имена классов.

  • Установите параметр "Плюрализация имен" на "Включено = Истина", чтобы применить правила множественного числа к именам классов объектов, добавляемых в O/R Designer.

ОБНОВЛЕНИЕ 2

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

(...) Когда вы работаете с подходом Entity Framework Code First, вы создаете таблицы базы данных из классов вашей модели. Обычно Entity Framework создает таблицы с множественными именами. это означает, что если у вас есть класс модели PhoneNumber, платформа Entity создаст таблицу для этого класса с именем PhoneNumbers. Если вы хотите избежать множественного имени и хотите использовать такое имя, как Customer, вы можете сделать это следующим образом В своем классе DBContext переопределите метод OnModelCreating следующим образом (...)

enter image description here

(...) Переопределение этого метода позволит избежать создания таблиц с множественными именами. Теперь он создаст таблицу с именем "PhoneNumber", а не "PhoneNumbers" (...)

Ответ 2

это может быть причиной преобразования данных из .net в sql. например, ошибка преобразования даты и времени.

вообще это не точная ошибка. вы можете увидеть точную ошибку в watch at exception.InnerException.InnerException → ResultView.

для меня это была нулевая ссылка на столбец datetime

Ответ 3

Для записей у меня была эта проблема и была глупой ошибкой на моем конце. Моя проблема связана с несоответствием типа данных. Тип данных в таблице базы данных и классах С# должен быть таким же......

Ответ 4

Я столкнулся с такой же ошибкой:

"Произошла ошибка при обновлении записей. См. внутреннее исключение для деталей"

Просто Удалите и создайте файл *.edmx. Это сработало для меня. ошибка исчезнет

Ответ 5

У меня была эта проблема в последнее время. Это произошло, потому что разрешения пользовательской базы данных. проверить разрешения пользовательской базы данных, возможно, у пользователя нет разрешения на запись на db.

Ответ 6

Я столкнулся с одной и той же проблемой, и мне не помогли никакие вышеупомянутые решения. В моем проекте Web Api 2 я фактически обновил мою базу данных и разместил unique constraint на SQL table column.. Это действительно вызвало проблему. Просто проверка значений повторяющихся столбцов перед вставкой помогла мне устранить проблему!

Ответ 7

Моя проблема заключалась в том, что идентификатор таблицы не AUTO_INCREMENT, и я пытался добавить диапазон.

Ответ 8

В моем случае.. следующие шаги решены:

Было значение столбца, для которого было установлено "Обновить" - заменили его на "Правка" (не ключевое слово sql) В одном из имен столбцов был пробел (убрал лишний пробел или обрезку)

Ответ 9

У меня была та же проблема с SaveChanges() в EF, но в моем случае я забываю обновить свою таблицу sql, после того, как я использовал миграцию, моя проблема решена, поэтому, возможно, обновление ваших таблиц решит проблему.