Успях да използвам MariaDB 10 с Entity Framework, въпреки че изискваше малко работа, главно защото инструментите на MySQL са малко бъгове.
За работа с MySQL/MariaDB във Visual Studio 2010/2012 , трябва да инсталирате MySQL за Visual Studio използвайки MySQL Installer . Използвах уеб версията, тъй като исках само да изтегля конекторите и разширенията. След като направите това, можете да добавяте връзки към MariaDB и да създавате EF модели.
Това обаче не е достатъчно, за да стартирате вашия код. Първо трябва да добавите MySQL конектора с помощта на NuGet.
За съжаление MySQL за Visual Studio добавя препратка към по-стара версия на доставчика (споменато тук ) и не може да зареди по-новата версия. За да коригирам това, добавих следния раздел в моя 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>
Това заменя старата препратка с нова. Имайте предвид, че използвах
<remove invariant="MySql.Data.MySqlClient"/>
не
<remove name="MySql Data Provider"/>
в remove
елемент.
Понастоящем MySQL за Visual Studio не се поддържа във Visual Studio 2013
АКТУАЛИЗИРАНЕ - 2017 г.
Connector/.NET по същество е в застой, със същите проблеми, които имаше през 2013 г., например няма истински асинхронни повиквания. "асинхронните" повиквания са фалшиви - те се изпълняват в отделни нишки, побеждавайки самата цел за използване на async
. Само това го прави неподходящ за уеб приложения, където човек иска да обслужва възможно най-много заявки, използвайки минималното брой нишки/CPU.
Няма значение за поддръжката на .NET Core.
Ето защо през последните няколко години хората изградиха свои собствени, наистина асинхронни доставчици. Някои от по-популярните са:
- MySqlConnector предлага наистина асинхронен доставчик за .NET и .NET Core
- Pomelo предлага поддръжка на EF Core върху MySQLConnector
С около 100 000 изтегляния на NuGet всяка, чести версии и активна поддръжка.
Те не са "официални", но определено си струва да опитате
Актуализация за блокиране – април 2020 г.
Изглежда MySqlConnector и Pomelo наистина са се развили.
Connector/.NET най-накрая пусна няколко версии след почти две години с най-новата, 8.0.19, получаване на 233K изтегляния.
MySqlConnector от друга страна, получи496K изтегляния за версия 0.61.0. Малките актуализации са чести, като най-новата 0.63.2 идва 8 часа преди тази публикация. Това вероятно е твърде често, но много по-добре от 2 години.
Все още не съм проверил функциите или съвместимостта с MySql 8. Ако трябваше да избера (което вероятно ще направя за проект следващата седмица), бих започнал с MySqlConnector.
Подозирам, че Connector/.NET ще бъде принуден да предлага много по-чести актуализации, за да бъде в крак с версиите на .NET Core, но това са само спекулации в този момент.