Udało mi się użyć MariaDB 10 z Entity Framework, chociaż wymagało to trochę pracy, głównie dlatego, że narzędzia MySQL są nieco wadliwe.
Praca z MySQL/MariaDB w Visual Studio 2010/2012 , musisz zainstalować MySQL dla Visual Studio za pomocą Instalator MySQL . Użyłem wersji internetowej, ponieważ chciałem tylko pobrać konektory i rozszerzenia. Gdy to zrobisz, możesz dodać połączenia do MariaDB i utworzyć modele EF.
To jednak nie wystarczy do uruchomienia kodu. Najpierw musisz dodać łącznik MySQL przy użyciu NuGet.
Niestety, MySQL dla Visual Studio dodaje odniesienie do starszej wersji dostawcy (wspomnianej tutaj ) i nie można załadować nowszej wersji. Aby to naprawić, dodałem następującą sekcję w moim 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>
Zastępuje to stare odniesienie nowym. Zauważ, że użyłem
<remove invariant="MySql.Data.MySqlClient"/>
nie
<remove name="MySql Data Provider"/>
w remove
element.
Obecnie MySQL for Visual Studio nie jest obsługiwany w Visual Studio 2013
AKTUALIZACJA – 2017
Connector/.NET jest w zasadzie w stagnacji, z takimi samymi problemami, jakie miał w 2013 roku, np. brak prawdziwych wywołań asynchronicznych. Wywołania "async" są fałszywe - są uruchamiane w osobnych wątkach, niwecząc sam cel używania async
. Już samo to sprawia, że nie nadaje się do aplikacji internetowych, w których chce się obsłużyć jak najwięcej żądań, korzystając z minimum liczba wątków/procesor.
Nieważne o obsłudze .NET Core.
Dlatego w ciągu ostatnich kilku lat ludzie zbudowali własnych, prawdziwie asynchronicznych dostawców. Niektóre z bardziej popularnych to:
- MySqlConnector oferuje prawdziwie asynchronicznego dostawcę dla .NET i .NET Core
- Pomelo oferuje obsługę EF Core w połączeniu z MySQLConnector
Z około 100 000 pobrań NuGet, częstymi wersjami i aktywną konserwacją.
Nie są „oficjalne”, ale zdecydowanie warto spróbować
Aktualizacja blokady – kwiecień 2020
Wygląda na to, że MySqlConnector i Pomelo naprawdę wystartowały.
Connector/.NET w końcu wydał kilka wersji po prawie dwóch latach z najnowszym, 8.0.19, otrzymałem 233 tys. pliki do pobrania.
MySqlConnector z drugiej strony otrzymałem 496K pliki do pobrania dla wersji 0.61.0. Drobne aktualizacje są częste, a najnowsza 0,63.2 pojawi się na 8 godzin przed tym postem. To prawdopodobnie trochę za często, ale znacznie lepiej niż 2 lata.
Nie sprawdziłem jeszcze funkcji ani kompatybilności z MySQL 8. Gdybym miał jednak wybierać (co prawdopodobnie zrobię dla projektu w przyszłym tygodniu), zacząłbym od MySqlConnector.
Podejrzewam, że Connector/.NET będzie zmuszony do oferowania znacznie częstszych aktualizacji, aby nadążyć za wydaniami .NET Core, ale w tym momencie to tylko spekulacje.