Entity Framework - " произошла ошибка при обновлении записей. Дополнительные сведения см. В разделе внутреннее исключение"
У меня проблема, я только начал изучать модель EF, и я остаюсь в одной точке в течение некоторого времени. Я получил такую ошибку:
" при обновлении записей произошла ошибка. См. внутреннее исключение для деталей"
Я создал простой модели, схемы, создание базы данных и написал простой код на C#, чтобы добавить только одну строку в таблице, но ошибка появляется все время.
Я публикую скриншот с диаграммой / сгенерированной DLL / простой основной / и ошибка метания
Ссылка для большего размера:http://i.imgur.com/bKGc4wv.png
7 ответов
повернуть Pluralization On
. Проблема в том, что вы моделируете объект, используя единственное имя (Pupil
) соглашение, в то время как в вашей базе данных вы используете несколько имен Pupils
С s
.
обновление
этой в должности показывает, как вы можете включить его или выключить. Некоторые соответствующие выдержки из этого поста:
для включения и выключения плюрализации
в меню Сервис выберите Опции.
в диалоговом окне Параметры разверните узел базы данных. Примечание: выберите Показать все параметры, если узел инструменты базы данных не отображается.
Нажмите O/R Designer.
установите Плюрализацию имен в Enabled = False для установки конструктора O/R, чтобы он не изменял имена классов.
установите Плюрализацию имен в Enabled = True, чтобы применить правила плюрализации к именам классов объекты, добавленные в реляционный конструктор объектов.
обновление 2
но обратите внимание, что вы должны избегать множественных имен. Вы можете читать здесь как это сделать (я приведу его здесь, на случай, если ссылка будет нарушена).
(...) при первом подходе к коду Entity Framework таблицы базы данных создаются из классов моделей. Обычно Entity Framework создает таблицы с несколькими именами. это означает, что если у вас есть класс модели PhoneNumber, Entity framework создаст таблицу для этого класса под названием "PhoneNumbers". Если вы хотите избежать множественного имени и хотите единственное имя, как клиент , вы можете сделать это так В вашем классе DBContext переопределите метод "OnModelCreating" следующим образом (...)
(...) переопределение этого метода позволит избежать создания таблиц с множественными именами. Теперь он создаст Таблица называется "PhoneNumber", а не" PhoneNumbers"(...)
Это может быть причиной преобразования данных из .net в sql. например, ошибка преобразования datetime.
вообще это не точная ошибка. вы можете увидеть точную ошибку в watch at exception.Свойство innerexception.InnerException - > ResultView.
для меня это была пустая ссылка на столбец datetime
Я столкнулся с той же ошибкой:
" при обновлении записей произошла ошибка. См. внутреннее исключение для детали"
просто удалить и заново создать *.файл edmx. Это сработало для меня. ошибка исчезнет
недавно у меня была эта проблема. Это произошло, потому что разрешения пользовательской базы данных. проверьте разрешения базы данных пользователя, возможно, у пользователя нет разрешения на запись в БД.
я столкнулся с той же проблемой, и не вышеперечисленные решения помогли мне. В моем Web Api 2
проект, я фактически обновил свою базу данных и разместил unique constraint
на SQL table column.
это действительно было причиной проблемы. Просто проверка повторяющихся значений столбцов перед вставкой помогла мне устранить проблему!
для записи у меня была эта проблема и была глупая ошибка с моей стороны. Моей проблемой было несоответствие типов данных. Тип данных в таблице базы данных и классах C# должен быть одинаковым......
моя проблема заключалась в том, что идентификатор таблицы не является AUTO_INCREMENT, и я пытался добавить диапазон.