Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 6692|Ответ: 0

[Связь] Microsoft запускает Microsoft.Data.SqlClient на замену System.Data.SqlClient

[Скопировать ссылку]
Опубликовано 27.12.2021 22:21:14 | | |
фон

В первые годы .NET фреймворк System.Data был важным компонентом. Он предоставляет способ создания драйверов .NET базы данных, аналогично объектам данных ActiveX в Visual Basic. Хотя API отличается, его название используется повторно, отсюда и прозвище ADO .NET.

Одним из ключевых отличий между ADO и ADO .NET (то есть System.Data) является объектная модель. В ADO обычно нужно использовать только объекты Connection, Command и Recordset, а драйвер OleDB/ODBC скрывает что-то ещё. Это улучшает повторное использование кода, но разработчикам сложно раскрывать некоторые функции базы данных.

В ADO .NET вы также можете использовать OleDB/ODBC, но в большинстве случаев вы будете использовать серию классов, специфичных для баз данных. Эти классы производятся от DBConnection, DBCommand и DBDataReader, которые сохраняют повторное использование исходного кода. Но поскольку это сильно названные типы, они должны быть явно частью библиотеки .NET.

Вероятно, для упрощения разработки SQL Server, OleDB и драйверы ODBC входят в фреймворк System.Data. Такой подход был приемлем в то время, но создал проблемы с текущим циклом разработки SQL Server.

На самом деле, циклы релизов SQL Server менялись от 3 до 5 лет почти каждый год. Новые релизы часто требуют обновлений драйвера .NET, что невозможно, если он привязан к стандартному циклу выпуска .NET.

Первый шаг — разделить библиотеку System.Data. NET Core реализует этот этап, предоставляя отдельные библиотеки для каждого драйвера базы данных. Следующий шаг — полностью отделить драйвер SQL Server от .NET Core/Standard. Для этого они создали Microsoft.Data.SqlClient.

Обновление до Microsoft.Data.SqlClient

Для большинства разработчиков использование Microsoft.Data.SqlClient будет очень простым — просто изменить оператор using в начале каждого класса. Кроме того, он использует те же названия классов и API и предоставляет примерно те же функции.

Для лёгких ORM, таких как Dapper или RepoDB, дальнейшие изменения не требуются.

Если разработчики используют ORM для управления соединениями (например, EF, NHibernate), им нужно ждать обновлений ORM.

Более проблемные — те, что смешивают ORM. Если одна ORM использует Microsoft.Data.SqlClient, а другая — System.Data.SqlClient, это не будет работать одновременно. Это особенно важно при работе с общими объектами SqlTransaction.

юзабилити

Версия 1.0 Microsoft.Data.SqlClient доступна для следующих платформ:

  • .NET Framework 4.6+
  • .NET Core 2.1+
  • .NET Standard 2.0+


Известные проблемы

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

  • Тип пользовательских данных (UDT) может не работать с Microsoft.Data.SqlClient.
  • Azure Key Vault и Microsoft.Data.SqlClient не имеют хранилища ключей.
  • Microsoft.Data.SqlClient не поддерживает Always Encrypted для безопасных анклавов.
  • Только .NET Framework и .NET Core поддерживают Always Encrypted, .NET Standard — нет, потому что .NET Standard не имеет некоторых зависимостей шифрования.


Оригинальная ссылка:https://blog.csdn.net/weixin_39777464/article/details/111698467




Предыдущий:Linux обновляет системное время и часовой пояс
Следующий:Виртуальная машина ESXI расширяет ёмкость диска системы Linux
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com