Consegui usar o MariaDB 10 com o Entity Framework, embora exigisse um pouco de trabalho, principalmente porque as ferramentas do MySQL são um pouco problemáticas.
Para trabalhar com MySQL/MariaDB no Visual Studio 2010/2012 ,você precisa instalar o MySQL para Visual Studio usando o Instalador do MySQL . Usei a versão Web porque queria apenas baixar os conectores e as extensões. Depois de fazer isso, você pode adicionar conexões ao MariaDB e criar modelos EF.
Isso não é suficiente para executar seu código. Primeiro você precisa adicionar o MySQL Connector usando o NuGet.
Infelizmente, o MySQL para Visual Studio adiciona uma referência a uma versão de provedor mais antiga (mencionada aqui ) e não pode carregar a versão mais recente. Para corrigir isso, adicionei a seguinte seção no meu 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>
Isso substitui a referência antiga por uma nova. Note que eu usei
<remove invariant="MySql.Data.MySqlClient"/>
não
<remove name="MySql Data Provider"/>
no
remove
elemento. Atualmente, o MySQL para Visual Studio não tem suporte no Visual Studio 2013
ATUALIZAÇÃO - 2017
O Connector/.NET está essencialmente estagnado, com os mesmos problemas que teve em 2013, por exemplo, nenhuma chamada assíncrona verdadeira. As chamadas "assíncronas" são falsas - elas são executadas em threads separados, anulando o próprio propósito de usar
async
. Isso por si só o torna inadequado para aplicativos da Web, onde se deseja atender o maior número possível de solicitações usando o mínimo número de threads/CPU. Não importa o suporte do .NET Core.
É por isso que nos últimos anos as pessoas construíram seus próprios provedores verdadeiramente assíncronos. Alguns dos mais populares são:
- MySqlConnector oferece um provedor verdadeiramente assíncrono para .NET e .NET Core
- Pomelo oferece suporte ao EF Core além do MySQLConnector
Com cerca de 100 mil downloads do NuGet cada, versões frequentes e manutenção ativa.
Eles não são "oficiais", mas definitivamente vale a pena tentar
Atualização de bloqueio - abril de 2020
Parece que o MySqlConnector e o Pomelo realmente decolaram.
O Connector/.NET finalmente lançou algumas versões depois de quase dois anos com o mais recente, 8.0.19, obtendo 233K Transferências.
MySqlConnector por outro lado, tem 496K downloads para a versão 0.61.0. Atualizações menores são frequentes, com a mais recente, 0.63.2, chegando 8 horas antes desta postagem. Isso é provavelmente um pouco frequente, mas muito melhor do que 2 anos.
Ainda não verifiquei os recursos ou a compatibilidade do MySql 8. Se eu tivesse que escolher (o que provavelmente farei para um projeto na próxima semana), começaria com MySqlConnector.
Suspeito que o Connector/.NET será forçado a oferecer atualizações muito mais frequentes, para acompanhar os lançamentos do .NET Core, mas isso é apenas especulação neste momento.