Подтвердить что ты не робот

Использование MariaDB с платформой Entity Framework

Недавно я прочитал новость о том, что MariaDB является заменой замены для MySQL, поскольку MySQL имеет недружественные цены для кластерной/корпоративной версии в соответствии с Google.

Теперь я не могу найти что-либо касающееся EF для MariaDB в Google, поэтому я надеюсь, что кто-то знает об этом. Можно ли использовать драйвер MySQL для этого, поскольку он совместим с 100%? Любые мысли?

Обновление

Я только узнал, что RedHat также переключается с MySQL на MariaDB для своей системы управления базами данных по умолчанию. Поэтому моему текущему проекту необходимо переключить его на MariaDB.

4b9b3361

Ответ 1

Я смог использовать MariaDB 10 с Entity Framework, хотя для этого требовалась небольшая работа, потому что инструменты MySQL немного ошибочны.

Чтобы работать с MySQL/MariaDB в Visual Studio 2010/2012, вам нужно установить MySQL для Visual Studio используя Установщик MySQL. Я использовал веб-версию, так как я только хотел скачать разъемы и расширения. После этого вы можете добавлять подключения к MariaDB и создавать модели EF.

Этого недостаточно для запуска кода. Сначала вам нужно добавить MySQL Connector, используя 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

Коннектор/.NET по сути застаивается, с теми же проблемами, что и в 2013 году, например, нет настоящих асинхронных вызовов. "Асинхронные" вызовы являются поддельными - они запускаются на отдельных потоках, что наносит ущерб самой цели использования async. Это само по себе делает его непригодным для веб-приложений, где требуется как можно больше запросов на сервер, используя минимальное количество потоков/ЦП.

Не обращайте внимание на поддержку .NET Core.

Вот почему в последние несколько лет люди создали собственные, действительно асинхронные провайдеры. Некоторые из наиболее популярных:

  • MySqlConnector предлагает поистине асинхронный поставщик для .NET и .NET Core
  • Pomelo предлагает поддержку EF Core поверх MySQLConnector

Около 100 тыс. NuGet загружает каждый, частые версии и активное обслуживание.

Они не являются "официальными", но определенно стоит попробовать