Byl jsem schopen použít MariaDB 10 s Entity Framework, i když to vyžadovalo trochu práce, hlavně proto, že nástroje MySQL jsou trochu zabugované.
Práce s MySQL/MariaDB ve Visual Studiu 2010/2012 ,musíte si nainstalovat MySQL pro Visual Studio pomocí instalátoru MySQL . Použil jsem webovou verzi, protože jsem chtěl stáhnout pouze konektory a rozšíření. Jakmile to uděláte, můžete přidat připojení k MariaDB a vytvořit modely EF.
To však ke spuštění kódu nestačí. Nejprve musíte přidat MySQL Connector pomocí NuGet.
MySQL pro Visual Studio bohužel přidává odkaz na starší verzi poskytovatele (zmíněno zde ) a nelze načíst novější verzi. Abych to vyřešil, přidal jsem do souboru app.config následující sekci:
<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>
Tím se stará reference nahradí novou. Všimněte si, že jsem použil
<remove invariant="MySql.Data.MySqlClient"/>
ne
<remove name="MySql Data Provider"/>
v remove
prvek.
V současné době není MySQL pro Visual Studio podporováno ve Visual Studiu 2013
AKTUALIZACE – 2017
Connector/.NET v podstatě stagnuje, se stejnými problémy jako v roce 2013, např. bez opravdových asynchronních volání. „Asynchronní“ volání jsou falešná – běží na samostatných vláknech, čímž maří samotný účel použití async
. To samo o sobě jej činí nevhodným pro webové aplikace, kde je potřeba obsloužit co nejvíce požadavků s minimem počet vláken/CPU.
Nevadí podpora .NET Core.
To je důvod, proč si lidé v posledních letech vybudovali své vlastní, skutečně asynchronní poskytovatele. Některé z nejpopulárnějších jsou:
- MySqlConnector nabízí skutečně asynchronního poskytovatele pro .NET a .NET Core
- Pomelo nabízí podporu EF Core nad MySQLConnector
Každý s přibližně 100 000 staženími NuGet, častými verzemi a aktivní údržbou.
Nejsou "oficiální", ale rozhodně stojí za vyzkoušení
Aktualizace uzamčení – duben 2020
Zdá se, že MySqlConnector a Pomelo se opravdu rozjely.
Connector/.NET konečně vydal pár verzí po téměř dvou letech s nejnovější verzí 8.0.19 získává 233 000 stahování.
MySqlConnector na druhé straně získal 496 000 ke stažení pro verzi 0.61.0. Drobné aktualizace jsou časté, přičemž nejnovější 0.63.2 přichází 8 hodin před tímto příspěvkem. To je pravděpodobně trochu příliš často, ale mnohem lepší než 2 roky.
Ještě jsem nezkontroloval funkce nebo kompatibilitu MySql 8. Pokud bych si měl vybrat (což pravděpodobně udělám pro projekt příští týden), začal bych s MySqlConnector.
Mám podezření, že Connector/.NET bude nucen nabízet mnohem častější aktualizace, aby držel krok s vydáními .NET Core, ale to je v tuto chvíli pouze spekulace.