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

Άποψη: 55374|Απάντηση: 2

[Πηγή] Το EF Core Series 4 εξετάζει τις προτάσεις SQL που δημιουργούνται

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 19/2/2021 1:36:34 μ.μ. | | | |
Το EF Core Series 2 ενσωματώνει το OnModelCreating, δημιουργεί ευρετήρια χρησιμοποιώντας αντανακλάσεις και πολλά άλλα
https://www.itsvse.com/thread-9392-1-1.html

Χαρακτηριστικά σκίασης πλαισίου οντότητας σειράς EF Core (3) [Επανεκτύπωση]
https://www.itsvse.com/thread-9558-1-1.html


Κατά την ανάπτυξη, όταν χρησιμοποιούμε το πλαίσιο πυρήνα ef, όταν χρησιμοποιούμε εκφράσεις linq ή λάμδα, δεν μπορούμε να προβάλουμε απευθείας τις δηλώσεις sql, κάτι που δεν είναι βολικό για εμάς να αντιμετωπίσουμε προβλήματα ή να βελτιστοποιήσουμε την απόδοση.
Το ef εμφανίζει τις προτάσεις SQL που δημιουργούνται
https://www.itsvse.com/thread-3813-1-1.html

Αυτό το άρθρο χρησιμοποιεί το EF Core 5 ως παράδειγμαγια να προβάλετε τις προτάσεις SQL που δημιουργούνται από το EF εξόδου.


Αρχικά, δημιουργήστε μια νέα εργοστασιακή μεταβλητή consolelogger στο αρχείο εκκίνησης με τη μεταβλητή "ConsoleLoggerFactory" και η δήλωση sql που δημιουργήθηκε θα εξαχθεί στην κονσόλα, ο κώδικας έχει ως εξής:

Προσθέστε την έξοδο του αρχείου καταγραφής στη μέθοδο ConfigureServices ρυθμίζοντας τον κώδικα DbContext ως εξής:

Ξεκινήστε το έργο και δείτε την έξοδο της κονσόλας ως εξής:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Εκτελεσμένο DbCommand (1ms) [Παράμετροι=[], CommandType='Κείμενο', CommandTimeout='30']
      ΕΠΙΛΕΞΤΕ [ a ]. [Id], [a]. [ Απενεργοποιημένο ], [ a]. [Σύνδεσμος], [α]. [Όνομα], [α]. [PinYin], [ένα]. [Θέση], [α]. [_CreateTime], [α]. [_CreateTimeStamp], [α]. [_UpdateTime], [α]. [_UpdateTimeStamp]
      ΑΠΟ [Περιοχή] AS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Εκτελεσμένη εντολή dbCommand (19ms) [parameters=[p0='?' (Μέγεθος = 4000)], CommandType='Κείμενο', CommandTimeout='30']
      ΕΠΙΛΟΓΗ * ΑΠΟ Περιοχή ΟΠΟΥ pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Εκτελεσμένο DbCommand (1ms) [Παράμετροι=[], CommandType='Κείμενο', CommandTimeout='30']
      ΕΠΙΛΟΓΗ * ΑΠΟ Περιοχή


Εάν η πρόταση SQL με τη συνθήκη where μπορεί να δει μόνο τις παραμετροποιημένες μεταβλητές και όχι τις συγκεκριμένες τιμές που έχουν περάσει, προστίθεται η ακόλουθη διαμόρφωση:

Ενεργοποιήστε τη συμπερίληψη δεδομένων εφαρμογής σε μηνύματα εξαίρεσης, αρχεία καταγραφής και άλλα.

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

τιμές παραμέτρων των εντολών που αποστέλλονται στη βάση δεδομένων και άλλα τέτοια δεδομένα.

Αυτή η επισήμανση θα πρέπει να ενεργοποιείται μόνο εάν υπάρχουν μέτρα ασφαλείας

Με βάση την ευαισθησία αυτών των δεδομένων.

Σημειώστε εάν η εφαρμογή περνάει από

Καλέστε το Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),

Αυτή η επιλογή πρέπει στη συνέχεια να ρυθμιστεί με τον ίδιο τρόπο για όλη τη χρήση αυτού του παρόχου υπηρεσιών.

Εξετάστε το ενδεχόμενο να μην καλέσετε το Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

Ως εκ τούτου, το EF θα διαχειρίζεται τον πάροχο υπηρεσιών και θα μπορεί να δημιουργεί νέες περιπτώσεις ανάλογα με τις ανάγκες


Η πλήρης ρύθμιση έχει ως εξής:

Οι αποδόσεις είναι οι εξής:



Φυσικά, οι παραπάνω ρυθμίσεις μπορούν επίσης να διαμορφωθούν παρακάμπτοντας τη μέθοδο OnConfiguring του DbContext (δεν συνιστάται):

(Τέλος)




Προηγούμενος:Financial TipRanks Αξιολογήσεις ανάλυσης μετοχών
Επόμενος:Το EF Core Series (5) εκτελεί προτάσεις ή προβολές SQL, αποθηκευμένες διαδικασίες
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 26/9/2021 9:21:07 π.μ. |
Το ef εμφανίζει τις προτάσεις SQL που δημιουργούνται
https://www.itsvse.com/thread-3813-1-1.html
Δημοσιεύτηκε στις 26/10/2021 9:46:19 π.μ. |
Μελετήστε, δείτε πώς είναι το χρονικό όριο
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com