Причина: http://bugs.mysql.com/bug.php?id=61933
Я перекомпилировал коннектор из источника, увеличил версию до 6.4.3.1, но теперь этот (возможно) банальный вопрос блокирует меня.
КакУстановить полное имя провайдера в строке подключения в app.config?У меня установлен официальный соединитель 6.4.3.
Я получаю ошибку, когда добавляю новую модель данных сущности и выбираю из существующей базы данных.Это я проследил до вышеуказанной связанной (глупой) ошибки.
Я не смог найти лучшего заголовка для этого вопроса.
Microsoft Visual Studio
Ошибкапроизошло при подключении к базе данных.База данных может быть недоступна.Возникла исключительная ситуация типа System.Data.ProviderIncompatibleException.Сообщение об ошибке: «Поставщик не возвратил строку ProviderManifestToken.
Произошло внутреннее исключение типа« System.FormatException », с этим сообщением об ошибке:« Входная строка была в неправильном формате. ». '.
OK
Решение
Загрузите исходные коды MySQL Connector / 6.4.3 и распакуйте его.
В проекте MySql.Data.Entity замените ...:
(ProviderServices.cs: 188) С: double version = double.Parse (соединение.ServerVersion.Substring (0, 3), System.Globalization.CultureInfo.InvariantCulture);
(ProviderManifest.cs: 73) С: double version = double.Parse (manifestToken, System.Globalization.CultureInfo.InvariantCulture);
Создайте новый ключ знака и назовите его ConnectorNet (то же имя, что и в файле assemblyinfo.cs)
Добавьте .1 к AssemblyVersion в AssemblyInfo.cs в проекте MySql.Data, этот файл 1 будет предоставленst: [Assembly: AssemblyVersion ("6.4.3.1")]
Поместите Release в качестве целевой конфигурации, вы также можете отключить сборку проектов .Tests.
Как администратор, установите их с помощью gacutil. Здесь вы также получите токен открытого ключа.
Найдите файл Machine.config. Важно знать, какой .NET fx вы скомпилировали для использования в проектах..
Найдите DbProviderFactories и закомментируйте существующий поставщик данных MySQL, скопируйте его и замените в дублирующейся записи, добавив .1 в версии и маркер открытого ключа.
<!-- add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" / -->
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.3.1, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX" />