Entity Framework с базой данных MySQL в первую очередь - PullRequest
0 голосов
/ 08 мая 2018

Я работаю в новом проекте с c #, и мы хотим использовать Entity Framework 6, но каждый раз, когда мы хотим генерировать модели на основе используемой базы данных. Но когда я создаю модель ADO.Net с помощью мастера, после того, как я выбрал базу данных и структуру сущностей, я нажимаю кнопку «Далее» и вместо этого появляется окно для выбора таблиц, окна исчезают без каких-либо ошибок. .

Я использую Visual Studio 2017 Community Edition и установил MySQL-коннектор v.8.0.11. Если я понижаю версию коннектора mysql и фреймворка сущностей до v5, все работает без проблем, но после того, как я обновляю фреймворк коннектора и сущности до версии 6. * У меня возникает проблема, о которой я сообщал выше.

Ответы [ 4 ]

0 голосов
/ 19 марта 2019

Стоит отметить одну вещь:

Вам понадобится другой пакет Mysql EntityFramework для Mysql версии 6 и версии 8. (Возможно, именно поэтому автор понизил свой разъем mysql с 8 до 6)

Если ваш соединитель mysql имеет версию 8.x.x, вам может потребоваться установить этот пакет NuGet: https://www.nuget.org/packages/MySql.Data.EntityFramework/

Если у вас соединитель mysql версии 6.x.x, вам потребуется: https://www.nuget.org/packages/MySql.Data.Entity/

И установите точно такую ​​же версию, как ваш MySQL-коннектор. Иначе что-то не получится.

0 голосов
/ 05 июля 2018

Мне удалось решить эту проблему с помощью следующей конфигурации на Web.config

<entityFramework>
  <defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.11.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.11.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
  </providers>
</entityFramework>
<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient" />
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.11.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
  </DbProviderFactories>
</system.data>

Также я ссылаюсь на:

0 голосов
/ 04 августа 2018

Итак, после трехдневной борьбы я наконец нашел проблему ...

Таким образом, MySql.Data и MySql.Data.Entity, которые необходимо загрузить из версий пакетов NuGet, напрямую связаны с версией MySql Connector / NET, которую необходимо загрузить.

А когда вы посмотрите, последняя версия MySql.Data.Entity - 6.10.7, так что это означает, что при загрузке Connector / NET 8 возникает несовместимость версий, что приводит к закрытию мастера объектов данных ADO.Net.

Скачайте следующее и БАМ это работает:

MySql for visual studio 
MySql Connector/NET v6.10.7   

Пакеты NuGet:

Entityframework v6.1.3    
MySql.Data v6.10.7    
MySql.Data.Entity v6.10.7 
0 голосов
/ 08 мая 2018

Эта проблема связана с версией используемых вами пакетов соединителей MySQL. В моем случае я использую MySQL.Data, MySQL.Entity and MySQL.Web от Nuget. Если я использую любую версию после 6.9.11, я получаю поведение, которое вы упомянули.

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