sql >> Databasteknik >  >> RDS >> Mysql

Kan inte ansluta till mysql från Visual Studio 2015

För att VS 2015 ska kunna ansluta till MySql måste du använda en senare version av MySql-biblioteken. Även om det verkar vara ett ganska enkelt svar, har jag i ärlighetens namn stött på flera problem på vägen. Med det i åtanke kommer jag att skriva ut den första processen som konsekvent har fungerat för mig så långt som att få EF att arbeta med MySql och VS2015. Så, utan vidare, här är de steg jag har tagit för att få det här att fungera.

1) Se till att MySql-anslutningsinstallationen är uppdaterad

2) Skapa ditt webbprojekt

3) Öppna Nuget

4) Installera Entity Framework

5) Sök efter MySql

6) Installera MySql.Data

7) Installera MySql.Data.Entity

8) Installera MySql.Data.Entities

9) Installera MySql.Web

10) Gå till referenserna för projektet och ta bort MySql.Data.Entity.EF6

11) Kontrollera versionerna av MySql.Data- och MySql.Web-biblioteken. Om de är under 6.9.6, ta bort dem också

12) Lägg till en ny referens genom att bläddra till installationsplatsen för mysql-anslutningen för din version av .NET-ramverket (min är C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5) och ta tag i MySql.Data.Entity.EF6.dll (min version är 6.9.6, tänk på det när vi ändrar web.config senare)

13) Om de andra biblioteken också var äldre versioner, lägg till referenser till dem genom att bläddra till paketmappen i din lösning och hämta filerna från deras respektive mappar. Jag behöver normalt inte göra det här.

14) Nu måste Web.config redigeras. Det första steget är att ersätta entity framework-sektionen med den här koden (ändra versionsnumret till din nuvarande version. Observera att jag hittade det här utdraget på webben för ett par veckor sedan och inte har den ursprungliga länken. Jag ber om ursäkt till originalet poster med denna 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) Se till att din DbProviderFactories-sektion matchar

<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) Spara och bygg

Jag är inte säker på hur många av dessa steg som faktiskt krävs men efter att jag äntligen fick det en gång var jag tvungen att faktiskt få lite arbete gjort och hade inte tid att begränsa sakerna ytterligare. Förhoppningsvis får det dig att röra på dig.

P.S. Om du efter allt detta går igenom guiden och den bara försvinner innan den visar dig tabellerna i databasen att skapa entiteter från så kan det vara ett av tre problem jag har stött på på vägen. Databasservern kan inte kontaktas. Användaren har inte de nödvändiga behörigheterna för databasen. Fel version av MySql.Data.Entity.EF6 lades till som referens eller så är versionsnumret fel i web.config. Om jag tar tag i den här filen från paketkatalogen i min lösning stöter jag ofta på detta problem med avbruten guide utan felmeddelande. Att ta tag i det från MySql-installationskatalogen har fungerat bra för mig varje gång.



  1. Hur ansluter du till flera MySQL-databaser på en enda webbsida?

  2. Vackra block av pannplåt

  3. När ska man använda klustrade eller icke-klustrade index i SQL Server

  4. Kan Postgres-datatypen NUMERIC lagra signerade värden?