PracticU

הסבר על Eager Loading
טעינת כל המידע עם שאילתה אחת

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › הסבר על Eager Loading טעינת כל המידע עם שאילתה אחת
מילון מושגים:
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
Join - פעולת SQL שמשלבת שורות משתי טבלאות או יותר על בסיס קשר ביניהן.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.

הסבר על Eager Loading טעינת כל המידע עם שאילתה אחת
Eager loading היא האסטרטגיה השלישית: להביא את המידע הראשי והנלווה בשאילתה אחת, כשיודעים מראש שנצטרך את שניהם.
השלבים
1. נקודת פתיחה: משכפלים את הפונקציה שמביאה את כל המתנות ומציגה אותן. בלי Lazy loading, שמות קבוצות הגיל לא מופיעים.
2. הוספת Include: אחרי db.gifts מוסיפים Include עם שם ה-Navigation Property של הקבוצה (AgeGroup), ולבסוף ToList. כשיש עוד Navigation Properties אפשר לשרשר Include נוסף.
3. התוצאה: מתבצעת שאילתה אחת בלבד, select עם join. היא מורכבת יותר, אבל מביאה גם את המתנות וגם את קבוצות הגיל שלהן, וכל השמות מוצגים.
מתי להשתמש
כשבתחילת המערכת טוענים נתונים ויודעים בוודאות שצריך את הכול, ובמיוחד כשרצים על הכל בלולאה, עדיף שאילתה אחת מראש על פני הרבה שאילתות תוך כדי תנועה.
בכך הושלמו שלוש האסטרטגיות: Lazy loading, Explicit loading ו-Eager loading, ויש לבחור בכל מקרה את זו שמתאימה לתרחיש.

פרקי ההרצאה: הסבר על Eager Loading טעינת כל המידע עם שאילתה אחת

  1. 00:00

    הכרת Eager Loading

  2. 01:01

    שימוש ב-Include לטעינה מראש

  3. 01:58

    שאילתה אחת עם Join

תמלול ההרצאה: הסבר על Eager Loading טעינת כל המידע עם שאילתה אחת

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Eager Loading טעינת כל המידע עם שאילתה אחת» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    ומה שנשארנו לראות זה את ה-loading strategy האחרון, eager loading. בואו נעלה וניקח את הפונקציה הזאת, כי הקוד שלנו הוא די דומה לה. יש לנו פה display details gifts 1, שבה אנחנו פשוט מביאים את כלל המתנות ורצים ומציגים אותן.

  2. 00:22

    אז אני אשכפל את הפונקציה, אני אדביק פה, נקרא לה 4, אשכפל את זה למספר 4, קודם כל בואו נריץ אותה as is, נוודא רק שאין לנו lazy loading, נריץ, וכמובן אנחנו לא אמורים לראות את השמות של ה-H Groups, בבקשה, אין לנו.

  3. 00:46

    אם היינו מאפשרים את ה-lazy loading כמובן שהיינו רואים אבל היו פה הרבה הרבה שאילתות תוך כדי שניגשות לדאטה בייס. זה ראינו כבר והיה lazy loading. מבטל בואו ניגש ונראה מה אנחנו צריכים לעשות בשביל לבצע איגר לורדינג איגר לורדינג אומר דבר כזה אנחנו רוצים לפנות ולהביא את כלל הגיפט זה המידע הראשי עכשיו אנחנו יכולים לבוא לפה ולהגיד לו אינקלוד כלומר בוא תכלול באותה השאילתה מידע נוסף

  4. 01:27

    ותביא לי את כל המידע ששייך ל-age group כאן שוב אנחנו כותבים את השם של ה-navigation property שמשוייך לכל אובייקט שלנו. דרך אגב, אם היה לנו לדוגמה עוד navigation property ועוד ועוד, אין שום בעיה לעשות עוד include.include some other navigation.include another one וכו' וכו', אבל יש לנו במתנה רק navigation property

  5. 01:57

    אחד, אז יש לנו פה include h group. בואו נראה איך המערכת מתנהגת. כרגע, תזכרו, אין לנו Lazy Loading. בואו נריץ, ומה שאנחנו רואים זה קודם כל שאילתה אחת.

  6. 02:11

    זה לא שתי שאילתות, זה שאילתה אחת, Select אחד, ושימו לב שיש לנו פה Join. זאת אומרת שהשאילתה הפכה להיות טיפה יותר מורכבת, אבל הוא מראש הביא את כלל הנתונים, גם את המידע הראשי שהוא המתנות וגם את המידע

לקורס המלא: קורס Entity Framework Core

ההרצאה הקודמת: הסבר על Explicit Loading - טעינת מידע נלווה ספציפי מראש

ההרצאה הבאה: שאילתת LINQ פשוטה - מסוג Method-Like

הרצאות קשורות מקורסים אחרים

  • טריגר רק על עמודה אחת
  • טעינה עצלה ריאקט - Lazy Loading React
  • העלאת מספר רב של קבצים במכה אחת לאתר ב-NodeJS
  • עבודה עם UITableViewController - הוספה דינמית של פריטים, מחיקה דינמית וסידור המידע ב-swipe

קורסים נוספים במסלול

  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס ASP.NET
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio