Compartilhar via


Provedor de Banco de Dados EF Core do Microsoft SQL Server

Esse provedor de banco de dados permite que o Entity Framework Core seja usado com o Microsoft SQL Server (incluindo o SQL do Azure e o Azure Synapse Analytics). O provedor é mantido como parte do Projeto Entity Framework Core.

Instalar

Instale o pacote Microsoft.EntityFrameworkCore.SqlServer NuGet.

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Nota

O provedor faz referência a Microsoft.Data.SqlClient (não System.Data.SqlClient). Se o projeto usa uma dependência direta do SqlClient, verifique se ele faz referência ao pacote Microsoft.Data.SqlClient.

Dica

O pacote Microsoft.Data.SqlClient é fornecido com mais frequência do que o provedor EF Core. Se você quiser aproveitar os novos recursos e correções de bugs, poderá adicionar uma referência de pacote direto à versão mais recente do Microsoft.Data.SqlClient.

Aviso

A implementação assíncrona de Microsoft.Data.SqlClient infelizmente tem alguns problemas conhecidos (por exemplo, #593, #601e outros). Se você estiver vendo problemas inesperados de desempenho, tente usar a execução síncrona de comandos, especialmente ao lidar com grandes volumes de texto ou valores binários.

Uso

A partir do EF 9, é recomendável usar UseAzureSql e UseAzureSynapse para especificar que você está se conectando especificamente ao SQL do Azure ou ao Azure Synapse Analytics e UseSqlServer para especificar que você está se conectando ao SQL Server local; Isso permite que o provedor otimize e dê suporte corretamente a essas plataformas. Também é recomendável usar UseCompatibilityLevel método para especificar o nível de compatibilidade para que o SQL gerado seja compatível e/ou use os recursos mais recentes possíveis.

Nota

Os métodos UseAzureSql e UseAzureSynapse foram introduzidos no EF Core 9.0.

EnableRetryOnFailureByDefault

O EF 9 introduziu EnableRetryOnFailureByDefault um método que configura o contexto para a estratégia de execução padrão, a menos que ele seja configurado explicitamente (ou seja, ao usar DI). Para usá-lo, basta ligar ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()) e, posteriormente, você pode usar UseSqlServer como de costume. Não é necessário chamar EnableRetryOnFailureByDefault ao usar UseAzureSql ou UseAzureSynapse, pois eles já habilitam a estratégia de execução padrão.

Mecanismos de banco de dados com suporte

  • Microsoft SQL Server (2012 em diante)
  • Azure SQL
  • Azure Synapse Analytics