Поделиться через


Поставщик базы данных MICROSOFT SQL Server EF Core

Этот поставщик базы данных позволяет Entity Framework Core использовать с Microsoft SQL Server (включая AZURE SQL и Azure Synapse Analytics). Поставщик поддерживается в рамках Проекта Entity Framework Core.

Установить

Установите пакет NuGet Microsoft.EntityFrameworkCore.SqlServer .

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Заметка

Поставщик ссылается на Microsoft.Data.SqlClient (не System.Data.SqlClient). Если проект принимает прямую зависимость от SqlClient, убедитесь, что он ссылается на пакет Microsoft.Data.SqlClient.

Совет

Пакет Microsoft.Data.SqlClient выпускается чаще, чем поставщик EF Core. Если вы хотите воспользоваться преимуществами новых функций и исправлений ошибок, вы можете добавить прямую ссылку на пакет в последнюю версию Microsoft.Data.SqlClient.

Предупреждение

Асинхронная реализация Microsoft.Data.SqlClient, к сожалению, имеет некоторые известные проблемы (например, #593, #601и другие). Если возникают непредвиденные проблемы с производительностью, попробуйте использовать выполнение команды синхронизации, особенно при работе с большим текстом или двоичными значениями.

Употребление

Начиная с EF 9, рекомендуется использовать UseAzureSql и UseAzureSynapse, чтобы указать, что вы подключаетесь к AZURE SQL или Azure Synapse Analytics, а также UseSqlServer, чтобы указать, что вы подключаетесь к локальному SQL Server; это позволяет поставщику оптимизировать и правильно поддерживать эти платформы. Также рекомендуется использовать метод UseCompatibilityLevel для указания уровня совместимости, чтобы созданный SQL был совместим и (или) использовать последние возможные функции.

Заметка

Методы UseAzureSql и UseAzureSynapse появились в EF Core 9.0.

РазрешитьПовторноеПовторениеПоУмолчанию

В EF 9 появился EnableRetryOnFailureByDefault метод, который настраивает контекст для стратегии выполнения по умолчанию, если она не настроена явно (т. е. при использовании DI). Чтобы использовать его, просто вызовите ConfigureSqlEngine(c => c.EnableRetryOnFailureByDefault()), а затем можете использовать UseSqlServer как обычно. Нет необходимости вызывать EnableRetryOnFailureByDefault, при использовании UseAzureSql или UseAzureSynapse, так как они уже включают стратегию выполнения по умолчанию.

Поддерживаемые ядра СУБД

  • Microsoft SQL Server (2012 на более поздних версиях)
  • Azure SQL
  • Azure Synapse Analytics