#mysql #entity-framework-core #entity-framework-6 #devart #dotconnect
Вопрос:
Я пытался обновить нашу Entity Framework с EF6 до EF Core 3.1 и получил эту странную ошибку.
Итак, вот шаги, которые я сделал, или некоторая информация, которая может помочь
- Текущий.Версия NET framework-4.7.2
- Использование EF Core 6
- Использование MySQL
- Обновите EF Core до EF Core 3.1 (почему 3.1? Мы пока не можем обновить версию библиотеки классов, так как она имеет множество зависимостей, а 3.1 является последней совместимой версией с .NET 4.7.2)
- Я использую Devart dotConnect для MySQL в качестве поставщика. Также обновлен до версии 8.19 (последняя на данный момент)
- Исправлены все ошибки сборки и созданы конструкторы моделей для определения и сопоставления свойств и столбцов таблиц.
После выполнения всех этих шагов проект строится без ошибок и запускается. Однако, когда я пытаюсь войти в систему (что, очевидно, вызывает вызов базы данных), он останавливается. Если я помещу точку останова в фактический запрос linq, он остановится. Это ничего не дает. Никакой ошибки тайм-аута, никаких исключений, просто ничего. Также я попытался проверить журнал сервера базы данных, запрос не был зарегистрирован, поэтому определенно запрос не проходил через сервер. Я также попытался намеренно ввести неправильное имя бд в строку подключения, это выдало ошибку, база данных не существовала.
Кто-нибудь испытывал то же самое?
Ответ №1:
- Включите инструмент dbMonitor, чтобы проверить, открыто ли соединение и отправлен ли SQL-запрос на сервер MySQL: https://www.devart.com/dotconnect/mysql/docs/?dbmonitor.html. Есть ли какая-нибудь ошибка?
- Перед отладкой проекта выполните следующие настройки в Visual Studio, чтобы получить исключение и подробную трассировку стека:
- в окне (Отладка > Windows >> Параметры исключений) выберите Исключения среды выполнения общего языка
- в окне (Инструменты > Параметры) перейдите в раздел Отладка >> Общие и снимите флажок Включить только мой код
Если это не поможет устранить проблему, пожалуйста, отправьте свой запрос через нашу контактную форму для получения поддержки.