Я создал базу данных в MySQL и пытаюсь отобразить ее с помощью Entity Framework, но начинаю сталкиваться с «GenerateSSDLException» всякий раз, когда пытаюсь добавить более 20 таблиц в контекст EF.
Исключение типа
'Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine + GenerateSSDLException'
произошла при попытке обновления
из базы данных. Исключение
сообщение: «Произошла ошибка во время
выполнение определения команды. Увидеть
внутреннее исключение для деталей. '
Во время выполнения команды произошла фатальная ошибка.
Истекло время ожидания. Время ожидания истекло до завершения операции, или сервер не отвечает.
Нет ничего особенного в затронутых таблицах, и это никогда не одна и та же таблица (и), просто после добавления определенного (неопределенного) количества таблиц контекст больше не может быть обновлен без «Истекло время ожидания» ошибка. Иногда остается только один стол, а иногда три; результаты довольно непредсказуемы. Кроме того, разница в количестве таблиц, которые могут быть добавлены до ошибки, указывает мне, что, возможно, проблема заключается в размере генерируемого запроса для обновления контекста, который включает в себя как существующие определения таблиц, так и новые таблицы, которые добавляются к нему. По сути, запрос SQL становится слишком большим и по какой-то причине не может быть выполнен.
Если я сгенерирую модель с помощью EdmGen2 , она будет работать без ошибок, но сгенерированный файл EDMX не может быть обновлен в Visual Studio без создания вышеупомянутого исключения.
По всей вероятности, источник этой проблемы лежит в инструменте в Visual Studio, учитывая, что EdmGen2 работает нормально, но я надеюсь, что, возможно, другие могли бы дать несколько советов о том, как подойти к этой очень уникальной проблеме, потому что это выглядит как Я не единственный, кто испытывает это .
Одно предложение, предложенное коллегой, заключалось в том, чтобы поддерживать два отдельных файла EBMX с некоторым пересечением таблицы, но, на мой взгляд, это выглядит довольно уродливо. Я полагаю, что это то, что я получаю за попытку использовать «новые технологии». (