Обновление EF6 до EF Core 3 с помощью Devart.MySQL

#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:

  1. Включите инструмент dbMonitor, чтобы проверить, открыто ли соединение и отправлен ли SQL-запрос на сервер MySQL: https://www.devart.com/dotconnect/mysql/docs/?dbmonitor.html. Есть ли какая-нибудь ошибка?
  2. Перед отладкой проекта выполните следующие настройки в Visual Studio, чтобы получить исключение и подробную трассировку стека:
  • в окне (Отладка > Windows >> Параметры исключений) выберите Исключения среды выполнения общего языка
  • в окне (Инструменты > Параметры) перейдите в раздел Отладка >> Общие и снимите флажок Включить только мой код

Если это не поможет устранить проблему, пожалуйста, отправьте свой запрос через нашу контактную форму для получения поддержки.