Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ των μεθόδων include και theninclude κατά την εργασία με σχέσεις σε ORM;

sobes.tech AI

Απάντηση από AI

Η μέθοδος Include σε ORM (π.χ., Entity Framework) χρησιμοποιείται για την άμεση φόρτωση των σχετικών οντοτήτων πρώτου επιπέδου. Δηλαδή, επιτρέπει τη φόρτωση των σχετικών δεδομένων μιας ιδιότητας πλοήγησης μαζί με την κύρια οντότητα.

Το ThenInclude εφαρμόζεται για τη φόρτωση σχετικών οντοτήτων δεύτερου και υψηλότερου επιπέδου, δηλαδή για εμφωλευμένες ιδιότητες πλοήγησης μετά το Include.

Παράδειγμα:

var orders = context.Orders
    .Include(o => o.Customer)           // φόρτωση του σχετικού Customer
    .Include(o => o.OrderItems)         // φόρτωση της συλλογής OrderItems
        .ThenInclude(oi => oi.Product) // για κάθε OrderItem, φόρτωση του Product
    .ToList();

Εδώ, το Include φορτώνει τα OrderItems, και το ThenInclude φορτώνει τα σχετικά Product.

Έτσι, το Include ξεκινάει τη σειρά φόρτωσης σχετικών δεδομένων, και το ThenInclude την επεκτείνει για εμφωλευμένες σχέσεις.