Quando o EF Core fez sua grande reescrita entre a série 1.x e 2.0, todos os provedores de banco de dados do EF Core foram quebrados. Desde então, várias equipes de desenvolvimento, privadas e comerciais, vêm trabalhando para preencher as lacunas.
Para o propósito deste relatório, serão analisado apenas os provedores de banco de dados EF Core prontos para produção. Aqueles que ainda estão no estado de pré-lançamento/pré-lançamento serão abordados em um artigo futuro.
SQL Server
O SQL Server é fornecido pela Microsoft, com a limitação de que o provedor do EF Core só funciona com o SQL Server 2008 e posterior.
Para instâncias do SQL Server 2000 e 2005 use o Entity Framework original. No entanto, essas versões não são mais suportadas e não devem continuar sendo usadas nas configurações de produção.
PostgreSQL
O padrão para acessar o PostgreSQL a partir do .NET são os drivers Npgsql, junto com os provedores de banco de dados EF e EF Core. Mas eles não são os únicos.
A Devart oferece uma biblioteca comercial para o PostgreSQL chamada dotConnect. Eles anunciam seu produto como:
O dotConnect para PostgreSQL oferece conectividade de alto desempenho para o banco de dados PostgreSQL e diversas ferramentas e tecnologias de desenvolvimento inovadoras. Ele suporta uma ampla gama de recursos específicos do PostgreSQL, como conexões SSL seguras, notificações PostgreSQL, carregamento de dados em massa do PostgreSQL, GEOMETRY, tipos ARRAY do PostgreSQL e outros.
Além de um driver ADO.NET, "dotConnect for PostgreSQL suporta ADO.NET Entity Framework, NHibernate e LinqConnect (anteriormente conhecido como LINQ to PostgreSQL)". O último é baseado no LINQ da Microsoft para SQL ORM.
SQLite
O provedor SQLite da Microsoft é baseado em SQLitePCL, uma implementação do SQLite projetada para a estrutura "Biblioteca de Classes Portátil" (Portable Class Library). PCL foi um precursor e subconjunto do .NET Standard. Deve-se notar que isso é separado dos drivers oficiais do .NET Standard para SQLite. Esses drivers oficiais não estavam disponíveis quando a Microsoft implementou o provedor de banco de dados SQLite.
Além do provedor fornecido pela Microsoft também há um driver SQLite e um provedor da EF da Devart.
MySql
Várias equipes estão oferecendo provedores de dados MySQL. O primeiro é o provedor oficial do MySQL oferecido pela Oracle.
O problema é que o driver de banco de dados MySQL subjacente não tem uma boa reputação. Embora seja de código aberto, ele é licenciado sob a GPLv2, uma licença bastante restritiva que normalmente não é vista na comunidade .NET. Mas o verdadeiro problema é que o driver MySQL da Oracle não suporta chamadas assíncronas. Em vez disso, de acordo com a equipe do MySqlConnector, ele apenas roda encadeamentos adicionais para executar E/S síncrona.
Por esse motivo, o MySqlConnector foi criado do zero. Ele afirma ser totalmente assíncrono e é oferecido sob a licença do MIT. Construído sobre o MySqlConnector é o provedor de banco de dados MySQL da Pomelo Foundation para o EF Core.
E novamente, a Devart oferece um driver de banco de dados MySQL comercial e um provedor EF Core. Seu conjunto de recursos distintivos inclui "recursos específicos do MySQL, como conexões SSL e SSH seguras, servidor embutido, protocolo de compactação, tunelamento HTTP e outros".
Firebird
O banco de dados do Firebird não recebe muita atenção na comunidade .NET, mas existe há muito tempo. Ele foi originalmente baseado na edição de código aberto da Borland do InterBase, mas a maior parte desse código foi reescrita nos últimos 19 anos.
Além do provedor de banco de dados oficial do Firebird, Rafael Almeida oferece o EntityFrameworkCore.FirebirdSql, que também é compatível com os bancos de dados do Firebird 2.x.
Progress OpenEdge
A Microsoft está mantendo a lista de fornecedores do EF Core atualizada. A oferta mais recente, o provedor de EF Core para o Progress OpenEdge, de Alex Wiese.
Microsoft Access
O suporte para MS Access é tratado por um único indivíduo da Itália conhecido como bubibubi. Sua biblioteca, conhecida como EntityFrameworkCore.Jet, está disponível apenas para o .NET Framework.
O motivo dessa limitação é que o OleDB não é oferecido atualmente para o .NET Core, mesmo quando executado no Windows. Isso pode mudar no futuro, já que muitos aplicativos WinForms e WPF não podem ser transferidos para o .NET Core sem o OleDB. Além do Access, muitos desses aplicativos usam drivers OleDB para ler arquivos do Excel.
SQL Server Compact
Embora o SQL Server Compact tenha sido preterido em favor do SQLite desde 2013, muitos aplicativos ainda podem ter dados. Caso se encontre nessa posição, Erik Ejlskov Jensen oferece os provedores de banco de dados EF Core para o SQL Server Compact.
Devido ao design do SQL Server Compact e seus drivers subjacentes, só funciona com o .NET Framework.
DB2
O poderoso, mas raramente falado, banco de dados da IBM, o DB2, requer bibliotecas separadas para Windows, Linux e OSX. Todos os três são oferecidos diretamente pela IBM.
Oracle
Originalmente, a Oracle pretendia certificar o ODP.NET, Driver gerenciado no Microsoft .NET Core no final do ano civil de 2017. Este plano, anunciado em março de 2017, seria apenas para o .NET Core 2.0. Em fevereiro de 2018, o plano foi alterado para ter um lançamento previsto para o terceiro trimestre de 2018. Como perderam esse segundo prazo, a Oracle não discutiu publicamente seus planos revisados.
A Devart oferece um driver de banco de dados Oracle e o provedor EF Core sob uma licença comercial.