Mogłem używać MariaDB 10 z Entity Framework, chociaż wymagało to trochę pracy, głównie dlatego, że narzędzia MySQL są nieco błędne.
Aby pracować z MySQL/MariaDB w Visual Studio 2010/2012, trzeba zainstalować MySQL for Visual Studio użyciu MySQL Installer. Użyłem wersji internetowej, ponieważ chciałem tylko pobrać złącza i rozszerzenia. Po wykonaniu tej czynności można dodawać połączenia z MariaDB i tworzyć modele EF.
To jednak nie wystarczy, aby uruchomić swój kod. Najpierw musisz dodać złącze MySQL za pomocą NuGet.
Niestety, MySQL for Visual Studio dodaje wzmiankę o starszej wersji dostawcy (wspomniana here) i nie może załadować nowszej wersji. Aby rozwiązać ten problem, dodałem następującą sekcję w mojej aplikacji.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>
To zastępuje stare odniesienie nowym. Zauważ, że użyłem
<remove invariant="MySql.Data.MySqlClient"/>
nie
<remove name="MySql Data Provider"/>
w elemencie remove
.
Obecnie MySQL dla Visual Studio nie jest obsługiwana w Visual Studio 2013
AKTUALIZACJA - 2017
Connector/NET jest zasadniczo stagnacji, z tymi samymi problemami, które pojawiły się w 2013 roku, na przykład nie prawdziwe połączenia asynchroniczne. Wywołania "asynchroniczne" są fałszywe - są uruchamiane na osobnych wątkach, pokonując sam cel użycia async
. Już samo to czyni go nieprzydatnym dla aplikacji internetowych, gdzie chce się obsłużyć jak najwięcej żądań przy użyciu minimalnej liczby wątków/procesora wynoszącej minimum.
Mniejsza o obsługę .NET Core.
Dlatego w ciągu ostatnich kilku lat ludzie zbudowali własnych, prawdziwie asynchronicznych dostawców. Niektóre z bardziej popularnych należą:
- MySqlConnector oferuje prawdziwie asynchroniczną dostawcy NET i.NET Rdzeń
- Pomelo oferuje wsparcie EF rdzenia na górze MySQLConnector
z około 100K Nuget pobierze każdy, częste wersje i aktywne utrzymanie.
Oni nie są „oficjalne”, ale na pewno warto spróbować
Widząc jak MariaDB jest widelec polityczny, że będą szalony złamać kompatybilność z protokołem drutu MySQL choć. Prawdopodobnie łatwiej jest utrzymać zgodność, niż utrzymywać całą rodzinę oprogramowania klienckiego. Wyraźnie mówią to również w dokumentach: https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/. – millimoose
Nie mam zasobów do zwirtualizowania serwera RedHat z MariaDB. Próbowałem MySQL na serwerze RedHat. –
Nie można pobrać VirtualBox, zainstalować CentOS i MariaDB w tym i wskazać przykładowy projekt w tym DB? – millimoose