
YoungGift ביחיד, public class, עם מאפיינים שזהים לעמודות שה-View מחזיר: Name (string), Price (decimal) ו-AgeGroupName. שמות חייבים להתאים בדיוק, כי התוצאות נקראות ישירות לתוך האובייקט.string יכול להיות null, ולכן אפשר לאפשר זאת, ו-decimal לא.StringLength של 100 לשם ולשם קבוצת הגיל, ו-Column מסוג money למחיר. זה חוסך אזהרות ובעיות.Keyless ברמת המחלקה.DbSet<YoungGift> YoungGifts { get; set; }, ערוץ הגישה לתוצאות ה-View.OnModelCreating: modelBuilder.Entity<YoungGift>().ToView("YoungGifts"). זה אומר ל-EF שאין טבלה כזו ולחפש View בשם הזה.ToView EF ינסה לבנות מהמודל טבלה. בלי Keyless תתקבל שגיאה על היעדר מפתח ראשי.הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת SQL View בתוך דוט-נט core» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
לצורך שימוש ב-view אנחנו צריכים לייצג אותו על ידי סוג של מודל. זה אומר שאנחנו צריכים עכשיו לגשת לאזור של המודלים ולבנות לעצמנו מודל שמייצג את אותו view.
נוסיף קלאס, נקרא לו באותו השם של ה-view young gift אבל ביחיד כי ה-view מביא לנו את כל ה-young gifts. אז הנה יש לנו young gift, מחלקה בואו ניפטר גם מזה נגדיר כאן נקודה פסיק בצורה כזאת גיפט הגדרנו פאבליק קלאס אז נגדיר גם פה פאבליק קלאס נישאר עם אותו הקונספט ומה
שאנחנו רוצים זה לחשוב מה בדיוק ה-view מביא לנו אז אם אנחנו נסתכל אנחנו נראה שה-view מביא name price וage group name זה בדיוק הדברים שאנחנו צריכים פה נבנה prop של name האמת שזה אמור להיות סטרינג, נבנה פרופ שאמור להיות כאן דצימל ופה אנחנו רוצים את הפרייס ונבנה פרופ סטרינג אג' גרופ נאם. חשוב כמובן שהשמות האלה יהיו בדיוק השמות שהוויו מחזיר מפני שאנחנו הולכים לקבל את
מה שהוויו מחזיר ישירות לתוך אובייקטים כאלה. אם אנחנו לא רוצים את ההערות אז כמובן נכניס פה נאל סימאל. קריאה בצורה כזאת כי סטרינג יכול להיות נלאבל, דצימל הוא לא נלאבל אז אין איתו בעיה שיהיה נל. הדבר הבא שאנחנו רוצים זה לשים מעל כל מאפיין את האטריביוט המתאימים לו.
אם אנחנו נמצאים בגיפט אנחנו רואים שהשם של הגיפט יכול להיות עד גודל 100 אז לצורך אחידות נגדיר את זה גם כאן. העמודה של המחיר היא money אז בואו נגדיר שהוא גם כן money.
או ה-name זה StringLengthEffרים אז נשאר בצורה אחידה h Group Name זה StringLengthEffרים, זאת אומרת אנחנו רוצים שאותם מאפיינים של העמודות האמיתיות יוגדרו גם אצלנו, כל הדברים האלה חוסכים לנו כל מיני הערות בקונסול כשאנחנו מייצרים את ה-view וחוסך עוד המון בעיות.
דבר נוסף אם אנחנו נמצאים בטבלה רגילה חייב שיהיה לה איזשהו מפתח אם אנחנו נמצאים ב-view לא חייב שיהיה לנו מפתח אבל מבחינת entity framework הדבר הזה חייב מפתח לכן אנחנו רוצים עוד מאפיין אחד ברמה של ה-view שנקרא כלס זה אומר תתעלם אל תיתן לי פה שגיאה על זה שאין לי פה מפתח ראשי כי אני לא באמת טבלה אמיתית אני מעין טבלה
וירטואלית כזאת לא צריך להיות לי מפתח ראשי גם אם היה לי כאן הייתי רוצה את ה-id אז לא לא הייתי חייב להגדיר שהוא יהיה מפתח ראשי ואין שום בעיה להגדיר את זה בצורה כזאת. אז זאת נקודה חשובה שחוסכת לנו שגיאה לאחר מכן ואחרי שהגדרנו את ה-young gift הזה שזה סוג של מודל מיוחד ל-view אנחנו עדיין צריכים לגשת לקונטקסט ולהוסיף שני דברים.
דבר ראשון אנחנו צריכים שהקונטקסט יכיל גישה לאותו view זה נמצא פה public db-set מסוג young-gifts נקרא לו young-gifts יש לנו פה get ו-set והנה זה בעצם הערוץ שלנו לכל מה שנמצא ב-view שמוחזר מהדאטאבייס קודם כל הוא נותן לי פה איזושהי שגיאה למה הוא נותן לי שגיאה פה לא הוא לא נותן איך חסר לי
enter כל אלה זה הטבלאות טייבל אלה views שאנחנו רוצים להתחבר אליהם מהדאטאבייס. הדבר הבא שאנחנו רוצים לבוא ולומר לקונטקסט זה שהדבר הזה הוא באמת view ולא טבלה רגילה, שלא ילך ולדוגמה יבנה לי מזה טבלה, וזה מתבצע ב-on-model-creating.
אחרי שאמרנו לו מה זה ה-seed data שלנו, אנחנו באים לכאן ואומרים לו model-binder,