
NorthwindEntities, שדרכו מבצעים שאילתות.Nodes שלה יש צמתים נוספים.Nodes.Add(key, text). המפתח צריך להיות ייחודי, כדי שאפשר יהיה לחפש אותו אחר כך. הדובר השתמש במזהה הלקוח כמפתח ובשם החברה כטקסט.customerNode.Nodes.Add.where o.CustomerID == c.CustomerID), ולכל הזמנה צומת עם מספר ההזמנה והתאריך.join לטבלת Products כדי לקבל את שם המוצר, ולכל מוצר צומת שמפתחה מזהה המוצר.ImageList, והפונקציה Nodes.Add מקבלת גם את אינדקס התמונה.ExpandAll() ו-CollapseAll() פותחים וסוגרים את כל העץ. הדובר הסתיר את העץ בזמן הפעולה (Visible = false) כדי שהפעולה תהיה מהירה.AfterSelect מופעל אחרי בחירת צומת. הרמה של הצומת נמצאת בתכונה Level: 0 ללקוח, 1 להזמנה, 2 למוצר.Convert.ToInt32), נשלחת שאילתה לפי מזהה המוצר, ומוצג השם והמחיר בלייבל. בבחירה של צומת אחרת הלייבל מתנקה.הטקסט המלא של הדקות הראשונות בהרצאה «רכיב ה-TreeView» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לרכיב נוסף שמאפשר הצגת מידע אבל זה רכיב מאוד מאוד מעניין וטיפה מורכב לעבודה אז בואו נבין מתי אנחנו צריכים להשתמש איתו ואיך מציגים בו מידע.
בשביל להבין למה אנחנו צריכים אותו בואו קודם כל נסתכל על מסד הנתונים שלנו מסד הנתונים שכבר עבדנו איתו Northwind ונבין משהו לגבי מידע שקיים שם.
אז אני פותח את מסד הנתונים, מתחבר אליו על ידי קונקט אני רואה פה את כל מסדי הנתונים שיש בתוך תוכנת SQL Server, ניגש לתוך Northwind, לתוך הטבלאות ואני מסתכל פה על כל הטבלאות שיש ואני רואה שיש פה טבלת Customers וזה בעצם טבלה שמחזיקה כל מיני לקוחות של החברה, של חברת Northwind.
אם אתם לוחצים הקשיים אני ב-SQL Server ובוחרים Edit All Rows אז אנחנו בעצם רואים את כל השורות שיש לטבלה. ומה שאנחנו רואים זה בעצם את כל הלקוחות של החברה, ולכל לקוח אנחנו רואים שיש לו קוד לקוח שמייחד אותו, ויש לו שם של החברה, השם של החברה עצמה,
כי לקוחות של Northwind הם בעצם חברות שמספקות מוצרי מזון, איש קשר, עיר וכו'.
עכשיו, קיימת פה עוד טבלה שנקראת Orders. בואו נסתכל רגע על Orders, נפתח אותה ונראה שיש לנו פה את ההזמנות, אבל רגע, מי ביצע ההזמנה? מי שביצע ההזמנה זה לקוחות customers שראינו מקודם, ואכן אנחנו רואים כאן את קוד הלקוח שביצע את ההזמנה.
כל שורה פה זאת הזמנה, ואנחנו רואים את אותו לקוח שביצע את ההזמנה, אנחנו רואים פה את התאריך, זה היה ב-1996, אנחנו רואים פה את קוד העובד שטיפל בהזמנה ואיזשהו קוד של הזמנה.
עכשיו, אם אנחנו מסתכלים אנחנו רואים רגע שיש פה עוד טבלה שנקראת Order Details כי כשלקוח מזמין הזמנה אז בעצם יכול להיות כמה מוצרים בהזמנה הזאת.
בואו נסתכל רגע על Order Details ונראה שיש פה את הפירוט של ההזמנה. לדוגמה אנחנו רואים ששלושת השורות הראשונות הן בעצם מראות את הזמנה 102.48 שלושת השורות האלה וזה אומר שבהזמנה 102.48 שאם אנחנו נסתכל עוד פעם על טבלת האורדר ואנחנו נראה שזאת ההזמנה הראשונה שקיימת כאן 102.48 בהזמנה הזאת אותו לקוח הזמין שלושה מוצרים שונים וכאן
אנחנו רואים את הקוד של המוצר שלו אנחנו רואים כמה המחיר היה בזמן ההזמנה כי מחירים יכולים להשתנות מה הכמות שהוא הזמין זאת אומרת אנחנו רואים פירוט לגבי ההזמנה אותו לקוח היה, בואו נסתכל רגע על טבלת ההזמנות, אותו לקוח היה וינט, איזשהו קוד לקוח שקיים בטבלת ההזמנות,
איפשהו פה יש את וינט. וינט, לקוח וינט הזמין הזמנה 102.48 בתאריך ה-4.7.96 ובהזמנה הזאת היו שלושה מוצרים שונים.
הנה הקודים שלהם. אם אנחנו רוצים לראות באמת אילו מוצרים הם היו, אנחנו יכולים לגשת לטבלת פרודקטס ולהסתכל ולראות רגע מוצר מספר 11 שהיה שם והמוצר הזה מוצר מספר 42 שהיה שם אנחנו יכולים לראות בדיוק שזה המוצר הזה ופה אנחנו יכולים לראות כמובן את השם שלו איזה ספק הוא איזה קטגוריה הוא כמה מוצרים מוכרים ביחידה וכולי וכולי אז
אנחנו רואים שלפעמים יש לנו מידע רב שנמצא במסד הנתונים אבל שכל מיני פריטי מידע קשורים אחד בשני. ומה שאנחנו הולכים לראות עכשיו זה איזה רכיב מסוגל להציג לנו את הכמות של המידע הזה כאשר אנחנו נוכל לראות דרכו איזה מידע קשור לאיזה מידע אחר.
בואו נחזור בחזרה והרכיב שאנחנו הולכים להתעסק איתו זה רכיב שנקרא טריוויו רכיב מאוד מאוד נפוץ בואו פשוט נזרוק אותו על הטופס הוא נראה כזה לבן אבל מה שהוא מסוגל להציג זה מידע בתוך מידע בתוך מידע.
אוקיי, אז איך אנחנו יכולים להשתמש עם ה-Trivue? בואו נפתח כאן מקום, ניקח איזשהו לחצן ונקרא ללחצן הזה btn-filter.
הלחצן הזה ימלא את כל העץ במידע. בואו נקרא לכל העץ הזה trv-customers. אנחנו מעוניינים בעצם להציג רשימה של לקוחות, אבל לכל לקוח יש הזמנות ולכל הזמנה יש מוצרים שהיו בהזמנה ולכן אנחנו תכף הולכים לראות איך אנחנו מסוגלים להציג את כל המידע בצורה מקושרת.
אז בגלל שאנחנו רוצים להציג קודם כל את הלקוחות, אז נקרא לרכיב הזה TRV Customers, 3-View Customers. עכשיו אנחנו צריכים שתהיה לנו איזושהי יכולת להביא את המידע מהדאטאבייס.
אנחנו כבר עשינו את זה באחד הסרטונים האחרונים, אז כל מה שאנחנו צריכים לעשות זה לגשת ולהוסיף לפרויקט עצמו בעצם פריט חדש, New Item אנחנו רוצים מקטגוריית הדאטה לבחור ב-ADO.NET Entity Data Model שזה בעצם שם קוד עבור Entity Framework וסך הכל זה יכולת לגשת
לדאטה בייס ולהביא מידע נקרא לקובץ הזה Northwind כשם כל מסד הנתונים שלנו ונתחיל לבחור את המידע. אז קודם כל אנחנו רוצים לייצר מידע מ-Database קיים, פעם כבר בחרנו את מסד הנתונים Northwind ולכן אנחנו רואים אותו,
אז בואו נבחר אותו, נבצע Next, נגדיר, קודם כל נראה את כל המידע, נגדיר כאן Pluralize או Singularize, זאת אומרת שהמערכת אוטומטית תדע איך לייצר לנו שמות של מחלקות לפי רבים יחיד אם שם המחלקה מתארת רבים אז היא תהיה ברבים אם שם המחלקה מתארת יחיד אז היא תהיה ביחיד לדוגמה המחלקה שמתארת מוצר
אחד תהיה תיקרא פרודקט למרות שהטבלה עצמה נקראת פרודקטס ברבים זה בעצם כלי מה שזה אומר לנו ובואו פשוט נבחר את כל הטבלאות שאנחנו רואים בדאטאבייס כרגע כי אנחנו מתעסקים עם כל מיני טבלאות נבצע פיניש ניתן לאנטיטי פריימורק לייצר את כל מה שהיא צריכה בכדי שהיא תוכל להביא לנו את כל המידע מהדאטאבייס כשאנחנו נרצה אנחנו נצטרך כמובן
לבצע שאילתות ולהגיד לאנטיטי פריימורק מה אנחנו רוצים להביא אנחנו רואים כאן אפשר להסתכל פה ולראות סכמה אנחנו יכולים לשייט פה בסכמה ולראות את כל המחלקות שהיא יצרה הנה פה אנחנו רואים מחלקה product אנחנו רואים ש-Product יש לה קשר פה למעלה ל-Order Detail.
Order Detail יש קשר ל-Order וכולי וכולי. בואו נבצע שמירה ואנחנו יכולים לסגור את החלון הזה. כל מה שאנחנו צריכים עכשיו בלחצן זה לבצע את הקוד שמביא לנו את המידע וממלא את העץ.
הנה הלחצן, בואו ניקח פה פונקציה נקרא לפונקציה הזאת מהלחצן, נגדיר כאן באזור הגלובלי Northwind Entities, אנחנו ראינו שזה בעצם אובייקט שמחזיק כל ה-collections, האוספים שמתארים את המידע מהדאטאבייס.
ואז בפונקציה הזאת כל מה שאנחנו צריכים לעשות זה להביא את המידע על ידי שאילתות שאנחנו בונים. אוקיי, אז בואו נתחיל עם שאילתא ראשונה, שהשאילתה הזאתי אנחנו רוצים לבחור את all customers וזאתי שאילתה ולכן נקרא לה all customers query והשאילתה אומרת דבר כזה from c,
c זה מייצג לנו אובייקט קסטומר אחד in db זה האוסף שבנינו למעלה או האובייקט שבנינו למעלה שמחזיק את כל האוספים נקודה customers select c בדרך כלל נהוג אפילו לעשות את זה בצורה כזאת זאת אומרת אנחנו באים ואומרים עבור כל אובייקט שנמצא באוסף ה-Customer אז תביא לי אותו.
אין לי פה שום פילטרינג תביא לי את כל האובייקטים של העובדים. כל מה שאנחנו צריכים לעשות זה לרוץ על כולם. נרוץ בפוריצ'קי היא הילולה הכי נוחה לריצה על אוספים.
כל פריט זה אובייקט מסוג Customer. מאיפה יש לנו מחלקה שנקראת Customer? אני לא בניתי מחלקה כזאת. אז למעשה המנגנון של אנטיטי פריימורק יצר לנו כל מיני מחלקות שתומכות בכל הפעולות של העברת המידע זה אחד היתרונות של כל הסיפור של אנטיטי פריימורק ולכן יש לנו את המחלקה הזאת ואנחנו יכולים לעבוד איתה אנטיטי פריימורק יצרה אותה
כתלות בדיוק במידע שהיה קיים בדאטאבייס אז בואו ניצור פה אובייקט קסטומר ואנחנו רוצים לרוץ על השאילתה all customers query מה אנחנו רוצים לעשות אנחנו רוצים לפנות לעץ ומה שאנחנו צריכים להבין זה איך בנוי העץ.
העץ הזה זה רכיב ויזואלי שמה שיש בו זה משהו שנקרא Nodes. Node זה צומת, זה אומר איזושהי נקודה בתוך העץ שיכול להיות לה Parent 1 ויכולים להיות לה הרבה Childs, זה נקרא Node.
ואם אנחנו מסתכלים אנחנו רואים שהטיפוס של Node זה זה three node collection של nodes. Nodes מחזיק לי המון המון צמתים, או יכול להחזיק המון צמתים.
אז אני פונה לאוסף הצמתים ומוסיף צומת אחת. ומה שאני רוצה להוסיף בצומת הזאת זה, אני רוצה לקרוא לפונקציה הזאת, והפונקציה הזאת יש לה מפתח וטקסט. כאשר אנחנו מוסיפים פריט לעץ חשוב שניתן מפתח ייחודי עבור הפריט, כדי שלאחר מכן נוכל לעשות חיפושים לדוגמה ולאתר את מה שאנחנו מחפשים.
אז אני קורא למסע הזאת, שמקבלת מפתח וטקסט. עכשיו שימו לב רק שמפתח, קוראים לו פה key ופה כתוב שזה name, זה אותו הדבר, key וname במקרה הזה זה אותו הדבר, איזשהו מסע ייחודי ויש לנו טקסט שרואים.
עכשיו, מה בעצם המפתח של כל קסטומר? כמובן, הקוד שלו. customer.customerid כאשר קסטומר שאנחנו רואים פה זה אובייקט לקוח אחד שאנחנו כרגע רצים עליו בכל השאילתה שמביאה לנו את הנתונים.
הדבר הבא שאנחנו רוצים להוסיף זה טקסט אחד ויחיד, בואו ניקח את ה-company name. נכון, הוא להוסיף כל טקסט אחר שאנחנו רוצים. ומספיק לנו בשביל להוסיף את כל הלקוחות. בואו נריץ, נלחץ על הלחצן ונראה שכל הלקוחות מתמלאים לנו בעץ.
הכל בסדר, אלו רשימת הלקוחות, אנחנו לא רוצים סתם להציג רשימה אחת, אחרת לא היה משמעות לעץ. אחרת היינו יכולים לקחת לדוגמה listbox או listview ופשוט להציג את כל הרשימה הזאת.
אנחנו יודעים שלכל לקוח יש הזמנות ואנחנו רוצים לראות את ההזמנות של אותו לקוח. איך אנחנו עושים את זה? כל לקוח שהוספנו אנחנו צריכים עכשיו לגשת לדאטאבייס ולהביא את ההזמנות ספציפית שלו ולהוסיף לו את ההזמנות האלה שיהיו מה שנקרא תכתב.
בואו ניתן פה קצת תיעוד כאן אנחנו בעצם רוצים למעשה זה זה להביא את כל הלקוחות כאן אנחנו רוצים להוסיף את כל הלקוחות פה אנחנו מוסיפים לקוח אחד.
עכשיו אנחנו רוצים בעצם להביא את כל ההזמנות של אותו לקוח בואו ניתן פה תיעוד אנחנו רוצים להביא את ההזמנות של אותו לקוח זאת תהיה שאילתה חדשה customer orders query לכל לקוח יש הזמנות מסוימות.
From oin db.orders הפעם אנחנו רוצים את טבלת ההזמנות אבל כן יש לנו פה איזשהו where אנחנו רוצים רק את ההזמנות שהcustomerid שלהם שווה לאותו customer שאנחנו כרגע נמצאים בו customerid ואנחנו רוצים לבחור את כל ההזמנה ובואו נזכה רגע אם אנחנו מסתכלים על טבלת הorders רואים אותה כאן אנחנו רואים את customerid
הזמנה אחת בעצם נוצרה על ידי לקוח כלשהו ויכול להיות שכמובן לקוח ביצע הרבה הזמנות בואו נחזור ויש לנו עכשיו את השאילתא שמביאה או שהביאה את כל ההזמנות של אותו לקוח אז איך אנחנו מוסיפים את כל ההזמנות שלו אז מה שקורה זה שהפונקציה add של nodes שימו לב מה היא מחזירה לנו מה שהיא מחזירה לנו זה
זה אובייקט מטיפוס 3-node שמתאר לנו צומת אחת בעץ והצומת בעץ שהוא מתאר לנו זאת אותה הצומת שכרגע התווספה ואומר שאם אנחנו רוצים להוסיף עוד פריטים לכל צומת בעץ אנחנו נאלצים לקבל את הצומת הזאת בואו נקרא לצומת customer node ועכשיו יש לנו את הצומת שהתווספה בעץ אנחנו
יכולים לגשת ל-Customer Node ולהוסיף את ההזמנות. אבל יכול להיות שיש הרבה הזמנות, אז בואו נוסיף את כל ההזמנות. נרוץ עוד פעם בלולת "For each", פעם כל פריט ו-Order.
זה נמצא בתוך Customer Orders Query, Customer Orders Query, ואנחנו רוצים to add one order. איך אנחנו מוסיפים order אחת? פונים ל-customer node שהוספנו אותו ממש כאן לפני הלולאה ממש פה הוספנו אותו על ידי add אנחנו פונים אליו ואומרים גם לו אנחנו רוצים להוסיף לאוסף ה-nodes וזה בדיוק הקטע של העץ כל צומת בעץ מכילה עוד
צמתים וכל צומת בתוך העץ מכילה עוד צמתים וכולי וכולי כמה שאנחנו צריכים אז אז אנחנו פונים לאוסף הצמתים שנמצאת בתוך הצומת של CustomerNode ואומרים בואו תוסיף לי עכשיו עוד צומת.
שוב פעם ניקח את ההעמסה הזאת שלקחנו מקודם. ומה שאנחנו רוצים זה לתת מפתח ואת הטקסט. בגלל שאנחנו מוסיפים הזמנה ניתן OrderID. שימו לב רק שמפתח זה סטרינג ו-OrderID זה אינטג'ר אז בואו נמיר אותו לסטרינג לאחר מכן בואו נוסיף את הטקסט עצמו.
מה אנחנו יכולים להוסיף לגבי הזמנה? בואו נסתכל על טבלת ההזמנות ונראה שכל שורה כאן זה הזמנה והיא שייכת ללקוח. אין טעם להוסיף את הקוד לקוח כי זה שייך ללקוח.
מה ששונה בין הזמנה אחת להזמנה אחרת, בואו נניח שזה התאריך של ההזמנה. אז נוסיף פשוט מאוד את התאריך בתור הטקסט. זה יהיה order.orderid, OrderDate.value זה התאריך עצמו, 2 סטרינג ובכדי שהתאריך יהיה יותר אסתטי בואו נגדיר לו 2 סטרינג כזה, Day, Month ו-Year, בואו נריץ נלחץ על הלחצן אנחנו רואים שהכל מתחיל להתמלא להתמלא להתמלא ועכשיו פתאום אנחנו רואים
שכל לקוח יש לו כמה הזמנות אנחנו רואים את התאריכים של ההזמנות שלו וכל לקוח כמובן יש לו הזמנות אחרות לגמרי. אוקיי, עכשיו מה יש לכל הזמנה אמרנו בדאטאבייס?
לכל הזמנה יש פירוט של מוצרים שלה. אז אנחנו צריכים לעשות בדיוק את אותו הדבר שעשינו מקודם. בואו ניקח פה Object-Trivy Node, נקרא לזה Order Node, נביא את כל המוצרים, יש לנו פה שאילתא של המוצרים של הזמנה אחת.
From Order Details in db.orderdetails ונעשה קצת שאילתה יותר מורכבת כי אנחנו רוצים את השמות של המוצרים. בואו נבין רגע מה אנחנו עושים פה. אם אנחנו מסתכלים על orderdetails אנחנו רואים שבorderdetails אין מוצרים, יש קודים.
אני רוצה להציג את המוצרים עצמם, לא מעניין אותי מה זה קוד של מוצר ולכן אני רוצה להביא את השם של המוצר לפי הקוד שלו מטבלת המוצרים. זאת הסיבה שאני מבצע פעולה שקיימת לרוב בגישות למסדי נתונים, שנקראת join, אני רוצה להביא מידע שקיים בשתי טבלאות שונות.
אז אני מאחד פה שתי טבלאות, OD זה אובייקט מטבלת ה-order details, P יהיה אובייקט מטבלת ה-products. אנחנו צריכים להגיד מה משותף בין שניהם, OD product ID משותף ל-P.product ID.
אנחנו רוצים לעשות את זה רק עבור אותה הזמנה נוכחית שאנחנו כרגע רצים אליה. where od.orderid שווה ל-order שזאת זה המשתנה הזה שאנחנו כרגע רצים עליו כי אנחנו נמצאים בהזמנה ספציפית אחת ויחידה ורק עבורה אנחנו רוצים לקבל את שמות המוצרים.
אז אנחנו משווים את זה עם הקוד שלה בלבד ואנחנו רוצים לבחור פריט שיש בו את ה-product id ואת ה-product name בלבד כי יש לנו פה יותר מדי נתונים ואנחנו לא צריכים את כולם עכשיו, שימו לב, גם אם לא ממש הבנתם לגמרי את כל השאילתא אתם יכולים להסתכל על קורס ייעודי של גישה
למסדי נתונים מאוד מאוד פשוט ומאוד חשוב שנקרא ADO.NET ו-Entity Framework והוא יסביר שם בצורה מפורטת איך ניגשים לדאטאבייס, איך יוצרים ב-Entity Framework אובייקטים איך עושים שאילתות גם בתוך הדאטאבייס וגם מחוץ לדאטאבייס קורס מאוד מאוד חשוב וכמעט תמיד באפליקציות שאנחנו בונים יש לנו גישות למסדי נתונים זה אחד הדברים הבסיסיים
ביותר אז מאוד מאוד חשוב לסגור את כל הנושא הזה ויש לנו כרגע את השאילתה מה שהשאילתה מביאה לנו זה את כל המוצרים של ההזמנה הספציפית שאנחנו נמצאים בה של אותו לקוח ספציפי שאנחנו כרגע נמצאים בו אוקיי מה אנחנו צריכים עם ההזמנה הזאת עם המוצרים האלה בואו נוסיף אותם נרוץ ב-for each אנחנו בעצם במוצרים של הזמנה
מסוימת בתוך ה-query order products query וכל מה שאנחנו רוצים לעשות זה to add one order product אבל איפה בדיוק הצומת שכרגע הוספנו אז אנחנו רואים שאנחנו היינו כאן והוספנו צומת חדשה תזכורת הצומת הזאת מתארת הזמנה ההזמנה הייתה בתוך צומת של לקוח אז הייתה לנו צומת אחד של לקוח בתוכה הוספנו הזמנה כלשהי ואנחנו רוצים בתוך ההזמנה הזאת order node ללכת לאוסף הצמתים של אותה הזמנה
add ולהוסיף עכשיו את המוצר עצמו. מה זה המוצר? order product האמת שזה אמור להיות order product בואו נשנה את זה לproduct order product נקודה product ID to string כי אנחנו צריכים לספק מאחורי זה וorder product.product name זה בעצם השם של המוצר שאנחנו רוצים להוסיף אם גם למוצר הזה היינו רוצים להוסיף עוד דברים לדוגמה איזה קטגוריות יש לו איזה קטגוריה
או איזה ספקים וכולי היינו צריכים לעשות פה את אותו הדבר tree node product node שווה ואז להוסיף לproduct node.nodes וכולי וכולי וכולי אתם כבר מכירים את הרעיון, אין לנו כרגע עוד דברים שאנחנו צריכים להוסיף ולכן נסתפק בזה.
בואו נריץ, ננקה פה כל מיני דברים, נריץ את העץ הזה, נלחץ על הלחצן ואנחנו רואים שכל העץ מתחיל להתמלות, מתמלא, מתמלא ואנחנו הולכים לראות קודם כל את רשימת כל הלקוחות.
בואו נסתכל על רשימת כל הלקוחות, זה פשוט לוקח לו טיפה זמן, הנה רשימת הלקוחות, לכל לקוח יש הזמנות, כל הזמנה יש מוצרים, שימו לב שחלק יש מוצר אחד וחלק יותר.
אז בינתיים עשינו את כל מה שאנחנו צריכים בשביל למלא את העץ, אבל העץ נראה קצת משעמם, האם אפשר להוסיף לו אייקונים? כך שאנחנו נוכל לראות בצורה נפרדת אייקון של לקוח, בצורה נפרדת אייקון של הזמנה ואייקון של מוצר.
איך אנחנו יכולים להוסיף לו אייקונים? למעשה ראינו בעבר איזשהו רכיב שמסוגל לספק תמונות לרכיבים אחרים. והרכיב שראינו נמצא ב-Components ונקרא ImageList.
ImageList זה סך הכל רכיב שמסוגל להחזיק אוסף של תמונות, אבל אפשר לקשר אותו עם רכיבים אחרים בווינפורם, והרכיבים האחרים יוכלו לשאוב ממנו את התמונות לפי מה שנגיד לו.
אנחנו רואים פה Collection Images, נפתח. נבצע אד, ולפני זה כבר הכנתי שלוש תמונות מתאימות. הנה קסטומר, יש לנו פה את אורדר ויש לנו פה את פרודקט.
נבחר אותם, נבצע אופן ונזיז אותם לסדר המתאים. בואו ניקח את קסטומר ונשים אותו ראשון, ניקח את אורדר ונשים שני ופרודקט הוא שלישי. ואנחנו רואים פה בצד את האינדקסים שלהם.
קסטומר זה אינדקס 0, אורדר זה אינדקס 1 ופרודקט זה אינדקס 2. מעולה. בואו נחזור, וכל מה שאנחנו צריכים לעשות זה להסתכל על פונקציית add.
הנה פונקציית add. פונקציית add ראינו שהיא קיבלה, בואו נסתכל רגע על ההעמסה שבחרנו, בחרנו את ההעמסה 3 מתוך 7, וראינו שהיא קיבלה מפתח וטקסט, וזה הציג.
אבל אנחנו יכולים ללחוץ פה פסיק, ולראות שיש לנו כאן עוד העמסה של אימג' אינדקס, כלומר איזה אינדקס של אובייקט אימג' ליסט אנחנו רוצים להציג שאנחנו חייבים כמובן לקשר בין אובייקט האימג' ליסט לבין אובייקט הטריוויו ועדיין לא קישרנו, תכף אנחנו נקשר את זה.
אם אנחנו נמצאים בקסטומר אנחנו רוצים להציג את אינדקס 0 של התמונה כי היא תמונה שמייצגת לקוח. כאן יש לנו עוד העמסה שמתארת איזה תמונה אנחנו רוצים להציג אם היוזר בוחר, עושה סלקשן.
בגלל שאין לנו כרגע תמונה אחרת בשביל בחירה ואנחנו לא תמיד צריכים לשנות את הבחירה כאשר היוזר בוחר פריט, ניתן את אותו האינדקס.