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

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

[Πηγή] Διαφορές μεταξύ .net IQueryable και IList

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 22/8/2016 11:22:07 π.μ. | | |

Το IList (IList<T>) δημιουργεί αμέσως μόνιμα δεδομένα στη μνήμη, τα οποία δεν υλοποιούν "αναβαλλόμενη εκτέλεση" και εάν η φορτωμένη οντότητα έχει συσχετισμένες οντότητες, η συσχετισμένη οντότητα δεν θα φορτωθεί (ούτε αμέσως ούτε τεμπέλης).

Το IQeurable <T>δεν δημιουργεί αμέσως μόνιμα δεδομένα στη μνήμη, αλλά φορτώνει δεδομένα στη μνήμη μόνο εάν διασχιστούν (π.χ. μέσω forreach), μετατραπούν σε λίστα κ.λπ., και μπορεί να επιτύχει "αναβαλλόμενη εκτέλεση", εάν η τρέχουσα φορτωμένη οντότητα έχει συσχετίσεις, αυτή η συσχετισμένη οντότητα μπορεί να φορτωθεί από την επόμενη πρόσβαση.

Κοιτάξτε το ακόλουθο κομμάτι κώδικα:
//IList的情况
Χρήστες IList = res. ToList(); Οι χρήστες έχουν φορτωθεί στη μνήμη, αλλά η συσχετισμένη οντότητα (UserInfos) για κάθε χρήστη δεν έχει φορτωθεί
                       φορτώνεται, οπότε η επόμενη γραμμή κώδικα δεν περνάει ομαλά
var ss = χρήστες. Όπου(p => p.UserInfos.ID != 3); Εδώ αναφέρεται σφάλμα επειδή δεν είναι δυνατή η φόρτωση της οντότητας UserInfos του P

Η κατάσταση του IQuerable
IQueryable χρήστες = res. AsQueryable(); Οι χρήστες δεν φορτώνονται αμέσως και η συσχετισμένη οντότητα μπορεί να ληφθεί με "τεμπέλικη φόρτωση"
                                   Το έπιασα
var ss = χρήστες. Όπου(p => p.UserInfos.ID != 3); Το αντίστοιχο SS αποκτήθηκε με επιτυχία εδώ




Προηγούμενος:Το .net κάνει ανάπτυξη WeChat για λήψη πληροφοριών χρήστη και λειτουργία σάρωσης [με πηγαίο κώδικα]
Επόμενος:Ζητήστε μια παραγγελία Alipay που παρακολουθεί τη χρήση της χρήσης, @小渣渣
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com