Om VS 2015 verbinding te laten maken met MySql, moet u een latere versie van de MySql-bibliotheken gebruiken. Hoewel dat een vrij eenvoudig antwoord lijkt, ben ik eerlijk gezegd onderweg verschillende problemen tegengekomen. Met dat in gedachten ga ik het eerste proces uitschrijven dat altijd voor mij heeft gewerkt voor zover ik EF met MySql en VS2015 heb laten werken. Dus, zonder verder oponthoud, hier zijn de stappen die ik heb genomen om dit te laten werken.
1) Zorg ervoor dat de installatie van de MySql-connector is bijgewerkt
2) Maak uw webproject
3) Nuget openen
4) Installeer Entity Framework
5) Zoeken naar MySql
6) Installeer MySql.Data
7) Installeer MySql.Data.Entity
8) Installeer MySql.Data.Entities
9) Installeer MySql.Web
10) Ga naar de referenties voor het project en verwijder MySql.Data.Entity.EF6
11) Controleer de versies van de MySql.Data- en MySql.Web-bibliotheken. Als ze onder 6.9.6 zijn, verwijder ze dan ook
12) Voeg een nieuwe referentie toe door te bladeren naar de installatielocatie voor de mysql-connector voor uw versie van het .NET-framework (de mijne is C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5) en de MySql.Data.Entity.EF6.dll pakken (mijn versie is 6.9.6, houd daar rekening mee wanneer we de web.config later wijzigen)
13) Als de andere bibliotheken ook oudere versies waren, voegt u er verwijzingen naar toe door naar de pakkettenmap in uw oplossing te bladeren en de bestanden uit hun respectievelijke mappen te halen. Normaal hoef ik dit niet te doen.
14) Nu moet de Web.config worden bewerkt. De eerste stap is om de sectie met het entiteitsframework te vervangen door deze code (wijzig het versienummer in uw huidige versie. Houd er rekening mee dat ik dit fragment een paar weken geleden op internet heb gevonden en niet de originele link heb. Mijn excuses voor het origineel poster van deze informatie.)
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>
15) Zorg ervoor dat uw DbProviderFactories-sectie overeenkomt
<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=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
16) Opslaan en bouwen
Ik weet niet zeker hoeveel van deze stappen eigenlijk nodig zijn, maar nadat ik het eindelijk een keer had gekregen, moest ik echt wat werk gedaan krijgen en had ik geen tijd om dingen verder te verfijnen. Hopelijk brengt dat je in beweging.
PS Als je na dit alles de wizard doorloopt en het gewoon verdwijnt voordat het je de tabellen in de database toont om entiteiten van te maken, dan kan het een van de drie problemen zijn die ik onderweg ben tegengekomen. Er kan geen verbinding worden gemaakt met de databaseserver. De gebruiker heeft niet de benodigde machtigingen voor de database. De verkeerde versie van MySql.Data.Entity.EF6 is toegevoegd als referentie of het versienummer is verkeerd in de web.config. Als ik dit bestand uit de pakketmap van mijn oplossing haal, kom ik vaak dit probleem met de afgebroken wizard-zonder-foutmelding tegen. Het uit de MySql-installatiemap halen heeft elke keer prima gewerkt.