Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на MariaDB с Entity Framework

Успях да използвам 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, но това са само спекулации в този момент.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дали да се използва ИМЕНА НА НАБОРИ

  2. Как да избегнете ключова дума със стойност в mysql, докато използвате оператор Select

  3. MySQL връзка през SSH тунел - как да посочите друг MySQL сървър?

  4. Docker - Стартирайте Apache на хост и контейнер за различни уебсайтове

  5. SYSDATE() Примери – MySQL