PracticU

אתחול רשומות
Initializing Seed Rows

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › אתחול רשומות Initializing Seed Rows
מילון מושגים:
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.

אתחול רשומות Initializing Seed Rows
לפעמים רוצים שמסד הנתונים ייווצר כבר עם כמה רשומות קבועות, למשל טבלאות ליסטינג כמו ערים, מדינות או מצב משפחתי. הטכניקה נקראת Seed Rows, והיא מוסברת כאן על טבלת AgeGroups.
איך עושים Seed Rows
1. במה מדובר: רשומות שתמיד צריכות להיות בדאטאבייס מרגע שנוצר, ושלא מוסיפים או מוחקים דרך האפליקציה. כאן, קבוצות הגיל.
2. הפונקציה: במחלקת ה-Context דורסים (override) את OnModelCreating, ומשאירים את הקריאה ל-modelBuilder. המערכת קוראת לה כשהיא יוצרת את הדאטאבייס ועושה מה שכתוב בה.
3. הרשימה: יוצרים List<AgeGroup> עם אובייקטים חדשים, כל אחד עם Name, MinAge ו-MaxAge. הדוגמאות: Babies 0 עד 2, Children 3 עד 12, Teenagers 13 עד 19, ומבוגרים 20 עד 120.
4. המפתח: בהוספה רגילה לא מגדירים ID כי הוא מספור אוטומטי, אבל ב-Seed Rows חובה להגדיר אותו (1, 2, 3 וכן הלאה).
5. חיבור לטבלה: modelBuilder.Entity<AgeGroup>().HasData(...) עם הרשימה.
שימו לב
ההוספה מתבצעת פעם אחת בלבד, בעת יצירת הדאטאבייס, ולא בכל יצירת אובייקט Context.
אחרי ההרצאה תוכלו להכין טבלאות עם נתונים קבועים מראש, לפני שיוצרים את מסד הנתונים.
השיעור הבא בקורס: יצירת מסד הנתונים מהקוד Creating the Database

פרקי ההרצאה: אתחול רשומות Initializing Seed Rows

  1. 00:00

    הצורך ברשומות קבועות בדאטאבייס

  2. 00:39

    מושג ה-Seed Rows

  3. 01:22

    דריסת הפונקציה OnModelCreating

  4. 02:01

    יצירת רשומות Age Group

תמלול ההרצאה: אתחול רשומות Initializing Seed Rows

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

  1. 00:02

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

  2. 00:19

    לפעמים קורה שאתם רוצים לבנות דאטה בייס אבל שהגיוני שאיך שהדאטה בייס נוצר אוטומטית אנחנו רוצים להכיל מספר רשומות בתוכו, תוך טבלה אחת או יותר. לדוגמה, במקרה הזה, כאשר אנחנו יוצרים את הדאטאבייס, אנחנו רוצים למלא את טבלת ה-age groups במספר קבוצות גיל.

  3. 00:42

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

  4. 00:53

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

  5. 01:10

    הקונספט הזה נקרא seed rows. איך עושים seed rows? אז אנחנו עושים את זה ברמת הקונטקסט בפונקציה נוספת שאנחנו בונים.

  6. 01:20

    הפונקציה הזאת היא פונקציה שאנחנו דורסים, לכן אני רושם Override ואני בוחר את הפונקציה onModelCreating, זאת הפונקציה. נשאיר פה את הדבר הזה כי אנחנו רוצים את המודל בילדר הזה ומה שאנחנו רוצים לעשות זה פשוט כאן לייצר את הרשומות החדשות שאנחנו רוצים ולצרף אותן לדאטאבייס.

  7. 01:44

    בפעם הראשונה שהמערכת יוצרת את הדאטאבייס היא קוראת לפונקציה הזאתי ופשוט עושה מה שכתוב בה. אנחנו רוצים לייצר ליסט של Age Group נקרא לזה Age Groups או Seed Age Groups בואו בואו נייצר ליסט, נכניס לתוך הליסט סדרה של Age Groups.

  8. 02:04

    אז יש לנו פה סדרה של אובייקטים, New Age Group, ניתן לו Name, נניח Babies, ניתן לו Minimum Age, נניח 0, ניתן לו Maximum Age, Babies, בואו נניח זה 0 עד 2. כאשר אנחנו מוסיפים רשומה חדשה ל-Database,

  9. 02:23

    נניח אני רוצה בהמשך להוסיף מתנה חדשה, אני לא מגדיר את ה-ID, כי ה-ID, אם הוא ID מספרי שאני קובע שהוא key בצורה כזאת, זה בעצם מספור אוטומטי רץ שהדאטאבייס מייצר

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

ההרצאה הקודמת: יצירת Context Class - לגישה למסד הנתונים

ההרצאה הבאה: יצירת מסד הנתונים מהקוד - Creating the Database

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

  • אתחול מטריצה - Initializing a Matrix
  • רשומות DNS
  • בחירת רשומות ב-SQL
  • רשומות מסוג PTR

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

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