Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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