Не могу получить мое подключение к MySQL из проекта asp.net MVC для работы - PullRequest
1 голос
/ 17 сентября 2011

Я пытаюсь заставить приложение MVC 3 использовать базу данных MySql, но продолжаю получать ошибки, я сделал следующую строку подключения и провайдера в моем файле Web.Config

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=xxxxx.unoeuro.com; userid=xxxxx_dk;password=xxxxx;pooling=yes;Database=xxxxx_dk_db" providerName="MySql_db"/>
</connectionStrings>

<system.data>
    <DbProviderFactories>
        <add name="MySql_db" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.54.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
    </DbProviderFactories>
</system.data> 

Но когда я пытаюсьиспользовать его (просто пытаюсь использовать зарегистрированного пользователя по умолчанию, который находится в проекте по умолчанию) Я получаю эту ошибку

Произошла ошибка при создании обработчика раздела конфигурации для system.data: столбец «InvariantName»вынужден быть уникальным.Значение 'MySql.Data.MySqlClient' уже присутствует.

Но если я удаляю DbProviderFactories, я просто получаю сообщение об ошибке, что отсутствует поставщик данных, поэтому я не дублирую его где-либо

Ответы [ 3 ]

4 голосов
/ 09 января 2014

Опираясь на ответ @Ladislav Mrnka, ошибка, вероятно, возникает из-за того, что настройка в Web.config конфликтует с настройкой в ​​machine.config. Чтобы устранить ошибку, добавьте тег «remove» в файл Web.config следующим образом.

<system.data>
    <DbProviderFactories>
        <remove invariant="MySql.Data.MySqlClient"/>
        <add name="MySql_db" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.54.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
    </DbProviderFactories>
</system.data> 
1 голос
/ 17 сентября 2011

Имя поставщика в строке подключения должно быть равно инвариантному имени фабрики поставщиков.Также ошибка, скорее всего, говорит о том, что на вашем компьютере уже установлена ​​MySql.Data.MySqlClient и зарегистрирована в Machine.config.

0 голосов
/ 29 марта 2018

Установите последнюю версию MySQL для Visual Studio и найдите совместимую версию для Connector / NET.

Например, я использовал MySQL для Visual Studio 1.2.7. и разъем / NET 6.7.5, 6.8.3 или 6.9.x. для Visual Studio 2013

удалите все остальные версии MySQL для Visual Studio и Connector / NET.

После этого добавьте новый элемент-> ADO.Net Entity Data Model и создайте файл edmx. вы можете увидеть system.data и system.data.entity в вашей справочной папке проекта.

в вашем коде MyDatabaseEntities myDB = new MyDatabaseEntities (); используйте myDB для доступа к вашим данным.

Если вы создаете каркасный проект , скопируйте все под тегом из app.config и вставьте его в файл web.config вашего основного проекта (запуска проекта) Следует иметь в виду, что этот тег должен быть первым потомком тега.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...