sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke oprette forbindelse til mysql fra Visual Studio 2015

For at VS 2015 kan oprette forbindelse til MySql, skal du bruge en nyere version af MySql-bibliotekerne. Selvom det virker som et ret simpelt svar, er jeg ærligt talt stødt på adskillige problemer undervejs. Med det i tankerne vil jeg udskrive den 1 proces, der konsekvent har fungeret for mig, så langt som at få EF til at arbejde med MySql og VS2015. Så uden videre, her er de trin, jeg har taget for at få dette til at fungere.

1) Sørg for, at MySql-forbindelsesinstallationen er opdateret

2) Opret dit webprojekt

3) Åbn Nuget

4) Installer Entity Framework

5) Søg efter MySql

6) Installer MySql.Data

7) Installer MySql.Data.Entity

8) Installer MySql.Data.Entities

9) Installer MySql.Web

10) Gå til referencerne for projektet og slet MySql.Data.Entity.EF6

11) Tjek versionerne af MySql.Data og MySql.Web bibliotekerne. Hvis de er under 6.9.6, slet dem også

12) Tilføj en ny reference ved at gå til installationsstedet for mysql-stikket til din version af .NET frameworket (min er C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5) og få fat i MySql.Data.Entity.EF6.dll (min version er 6.9.6, husk det, når vi ændrer web.config senere)

13) Hvis de andre biblioteker også var ældre versioner, skal du tilføje referencer til dem ved at browse til pakkermappen i din løsning og hente filerne fra deres respektive mapper. Jeg behøver normalt ikke at gøre dette.

14) Nu skal Web.config redigeres. Det første trin er at erstatte enhedsrammeafsnittet med denne kode (skift versionsnummeret til din nuværende version. Bemærk venligst, at jeg fandt dette uddrag på nettet for et par uger siden og ikke har det originale link. Jeg undskylder over for originalen plakat af denne information.)

<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) Sørg for, at din DbProviderFactories-sektion matcher

<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) Gem og byg

Jeg er ikke sikker på, hvor mange af disse trin der faktisk er nødvendige, men efter endelig at have fået det en gang skulle jeg faktisk få noget arbejde gjort og havde ikke tid til at indsnævre tingene yderligere. Forhåbentlig får det dig i gang.

P.S. Hvis du efter alt dette går gennem guiden, og den bare forsvinder, før den viser dig tabellerne i databasen, du kan oprette entiteter ud fra, så kan det være et af tre problemer, jeg er stødt på undervejs. Databaseserveren kan ikke kontaktes. Brugeren har ikke de nødvendige tilladelser til databasen. Den forkerte version af MySql.Data.Entity.EF6 blev tilføjet som reference, eller versionsnummeret er forkert i web.config. Hvis jeg henter denne fil fra pakkebiblioteket i min løsning, støder jeg ofte ind i dette afbrudte-wizard-uden-fejlmeddelelse-problem. At få fat i det fra MySql installationsmappen har fungeret fint for mig hver gang.



  1. Forkert strengfejl ved tilføjelse af emoji til en database via en formular

  2. Flere indsæt sætninger i enkelt ODBC ExecuteNonQuery (C#)

  3. mysqli_stmt::bind_result():Antallet af bindevariabler matcher ikke antallet af felter i forberedt sætning

  4. PHP/MySQL indsæt række og få 'id'