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

Brug af MariaDB med Entity Framework

Jeg var i stand til at bruge MariaDB 10 med Entity Framework, selvom det krævede lidt arbejde, primært fordi MySQL-værktøjerne er en smule buggy.

At arbejde med MySQL/MariaDB i Visual Studio 2010/2012 , skal du installere MySQL til Visual Studio ved at bruge MySQL Installer . Jeg brugte webversionen, da jeg kun ville downloade stikkene og udvidelserne. Når du har gjort dette, kan du tilføje forbindelser til MariaDB og oprette EF-modeller.

Dette er dog ikke nok til at køre din kode. Først skal du tilføje MySQL Connector ved hjælp af NuGet.

MySQL for Visual Studio tilføjer desværre en reference til en ældre udbyderversion (nævnt her ) og kan ikke indlæse den nyere version. For at løse dette, tilføjede jeg følgende afsnit i min app.config:

<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=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
   </DbProviderFactories>
</system.data>

Dette erstatter den gamle reference med en ny. Bemærk, at jeg brugte

<remove invariant="MySql.Data.MySqlClient"/>

ikke

<remove name="MySql Data Provider"/>

i remove element.

I øjeblikket understøttes MySQL til Visual Studio ikke i Visual Studio 2013

OPDATERING – 2017

Connector/.NET er i det væsentlige stagnerende, med de samme problemer som det havde i 2013, fx ingen ægte asynkrone opkald. "Async"-opkaldene er falske - de køres på separate tråde, hvilket besejrer selve formålet med at bruge async . Det alene gør det uegnet til webapplikationer, hvor man ønsker at servere så mange anmodninger som muligt ved at bruge minimum antal tråde/CPU.

Ikke noget med .NET Core-understøttelse.

Derfor har folk i de sidste par år bygget deres egne, virkelig asynkrone udbydere. Nogle af de mere populære er:

  • MySqlConnector tilbyder en virkelig asynkron udbyder til .NET og .NET Core
  • Pomelo tilbyder EF Core-understøttelse oven på MySQLConnector

Med omkring 100.000 NuGet-downloads hver, hyppige versioner og aktiv vedligeholdelse.

De er ikke "officielle", men absolut værd at prøve

Lockdown-opdatering – april 2020

Det ser ud til, at MySqlConnector og Pomelo virkelig har taget fart.

Connector/.NET frigav endelig et par versioner efter næsten to år med den seneste, 8.0.19, får 233K downloads.

MySqlConnector på den anden side fik 496K downloads til version 0.61.0. Mindre opdateringer er hyppige, med den seneste, 0.63.2, der kommer 8 timer før dette indlæg. Det er nok lidt for hyppigt, men langt bedre end 2 år.

Jeg har ikke tjekket funktioner eller MySql 8-kompatibilitet endnu. Hvis jeg dog skulle vælge (hvilket jeg sandsynligvis vil gøre til et projekt i næste uge), ville jeg starte med MySqlConnector.

Jeg formoder, at Connector/.NET vil blive tvunget til at tilbyde langt hyppigere opdateringer i gang for at holde trit med .NET Core-udgivelser, men det er kun spekulationer på nuværende tidspunkt.




  1. forespørgsel ekstremt langsom efter migrering til mysql 5.7

  2. Opret et indsæt... Vælg sætning i Laravel

  3. Formater et tal som en procentdel i Oracle

  4. SSMS version 18 – ingen databasediagrammer