Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 6692|Απάντηση: 0

[Επικοινωνία] Η Microsoft λανσάρει το Microsoft.Data.SqlClient για να αντικαταστήσει το System.Data.SqlClient

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 27/12/2021 10: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 θα είναι πολύ απλή, απλώς τροποποιώντας τη δήλωση χρήσης στην κορυφή κάθε κλάσης. Επιπλέον, χρησιμοποιεί τα ίδια ονόματα κλάσεων και 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 Πρότυπο 2.0+


Γνωστά προβλήματα

Δεν χρειάζεται όλοι να αναβαθμίσουν αμέσως. Αυτά τα γνωστά ζητήματα σημειώνονται στην τεκμηρίωση:

  • Ο τύπος δεδομένων χρήστη (UDT) ενδέχεται να μην λειτουργεί με το Microsoft.Data.SqlClient.
  • Το Azure Key Vault και το Microsoft.Data.SqlClient δεν διαθέτουν χώρο αποθήκευσης κλειδιών.
  • Το Microsoft.Data.SqlClient δεν υποστηρίζει την επιλογή "Πάντα κρυπτογραφημένο" για ασφαλείς θύλακες.
  • Μόνο το .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 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com