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

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

[Πηγή] Οι προτάσεις EF SQL δημιουργούν αυτόματα IS NULL ή IS NOT NULL

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 21/6/2023 10:42:18 μ.μ. | | | |
Απαιτήσεις: Όταν το EF χρησιμοποιεί εκφράσεις linq σε sql ή λάμδα για την υποβολή ερωτημάτων στη βάση δεδομένων, οι δηλώσεις SQL που δημιουργούνται από το EF θα μας βοηθήσουν να προσθέσουμε ορισμένες συνθήκες IS NULL ή NOT NULL.

Παράδειγμα 1:

Δημιουργεί μια δήλωση SQL ως εξής:

ΔΙΑΛΈΓΩ
    [Έκταση 2]. [Κατάσταση χρήστη] AS [Κατάσταση χρήστη],
    [Έκταση1]. [id] AS [id]
    ΑΠΟ [dbo]. [Πληροφορίες ηλεκτρονικού ταχυδρομείου] AS [Έκταση1]
    ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ [dbo]. [Λογαριασμός] AS [Έκταση2] ON ([Έκταση1].[ Διεύθυνση] = [Έκταση2]. [Email]) Ή (([Έκταση1].[ Address] ΕΙΝΑΙ NULL) ΚΑΙ ([Extent2].[ Email] ΕΙΝΑΙ ΜΗΔΕΝΙΚΟ))



Παράδειγμα 2:

Δημιουργεί μια δήλωση SQL ως εξής:

ΔΙΑΛΈΓΩ
    [Έκταση1]. [id] AS [id],
    [Έκταση1]. [Ονομα] AS [Όνομα],
    [Έκταση1]. [Αναγνωριστικό γονέα] AS [ParentId],
    [Έκταση1]. [Θέση] AS [Θέση],
    [Έκταση1]. [_CreateTime] AS [_CreateTime],
    [Έκταση1]. [_UpdateTime] AS [_UpdateTime]
    ΑΠΟ [dbo]. [Ταξινόμηση] AS [Έκταση1]
    WHERE ([Έκταση1].[ Όνομα] IN (N'Android', N'Solaris')) AND ([Extent1].[ Όνομα] ΔΕΝ ΕΙΝΑΙ ΑΚΥΡΟ)



Εάν θέλετε να αποφύγετε τη δημιουργία αυτών των πρόσθετων συνθηκών NULL από το EF, μπορείτε να ανατρέξετε στα ακόλουθα.

Ρύθμιση παραμέτρων της ιδιότητας DbContextConfiguration.UseDatabaseNullSemantics

Λαμβάνει ή ορίζει μια τιμή που υποδεικνύει εάν θα εμφανίζεται η σημασιολογία null της βάσης δεδομένων κατά τη σύγκριση δύο τελεστέων και είναι πιθανό να είναι και οι δύο null. Η προεπιλεγμένη τιμή είναι false.

Ο κωδικός έχει ως εξής:


Για παράδειγμα:
Εάν το UseDatabaseNullSemantics είναι αληθές, τότε το (τελεστέος1 == τελεστέος2) θα μετατραπεί σε (τελεστέος1 = τελεστέος2).
Εάν το UseDatabaseNullSemantics είναι ψευδές, θα μετατραπεί σε (((τελεστέος1 = τελεστέος2) ΚΑΙ (ΟΧΙ (τελεστέος1 ΕΙΝΑΙ ΚΕΝΟΣ Ή τελεστέος2 ΕΙΝΑΙ ΚΕΝΟΣ))) Ή ((τελεστέος1 ΕΙΝΑΙ ΚΕΝΟΣ) ΚΑΙ (τελεστέος2 ΕΙΝΑΙ ΚΕΝΟΣ))).

Τεκμηρίωση (Υπάρχει σφάλμα στην περιγραφή της τεκμηρίωσης):Η σύνδεση με υπερσύνδεσμο είναι ορατή.

πεδίο για να προσθέσετε το χαρακτηριστικό [Απαιτείται]

Αφού το EF προσθέσει το χαρακτηριστικό [Απαιτείται] στην ιδιότητα αντικειμένου, στην πραγματικότητα δεν επιτρέπει στο χαρακτηριστικό (πεδίο) να είναι NULL στη βάση δεδομένων.Μετά την εκτέλεση της εντολής μετεγκατάστασης, το πεδίο δεν επιτρέπεται να είναι NULLΔεδομένου ότι το πεδίο δεν επιτρέπεται να είναι NULL στη βάση δεδομένων, το EF φυσικά δεν δημιουργεί ορισμένους ελέγχους NULL στις προτάσεις SQL που δημιουργούνται για αυτό το πεδίο.

Αναφορά:Η σύνδεση με υπερσύνδεσμο είναι ορατή.






Προηγούμενος:ASP.NET Οι βασικές (είκοσι μία) επιλογές διαμόρφωσης είναι η διαφορά μεταξύ AddOptions και Configure
Επόμενος:Το ajax-hook για την ανάπτυξη ιστοσελίδων αναχαιτίζει όλα τα αιτήματα XMLHttpRequest
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com