PracticU

הוספת מודלים
ועדכון מסד הנתונים

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

הוספת מודלים ועדכון מסד הנתונים
מה עושים כשרוצים להוסיף מודל חדש לפרויקט שכבר יש לו דאטאבייס? ההרצאה מדגימה הוספת טבלת לקוחות ועדכון הדאטאבייס באמצעות Migration נוסף, בלי לפגוע בנתונים הקיימים.
השלבים העיקריים
1. המודל החדש: מחלקה Customer עם ID כמפתח ([Key] ו-[Column("CustomerID")]), FirstName ב-20 תווים, LastName ב-50, ו-Email עם StringLength. על האימייל שמים Index עם nameof ומגדירים IsUnique, כי לא הגיוני ששני לקוחות ישתמשו באותו אימייל. אפשר להגדיר שדה כאופציונלי עם ?.
2. ה-Context: מוסיפים DbSet<Customer> Customers, כמו שיש ל-AgeGroups ול-Gifts.
3. הוכחה שהנתונים נשמרים: הדובר מוסיף מתנה ידנית בטבלת Gifts (cute doll, מחיר 20.5, קבוצת גיל 1), כדי לראות שאחרי העדכון היא עדיין שם.
4. Migration חדש: Add-Migration עם שם משמעותי (בהרצאה AddingCustomers). נוצר Migration שני, אבל הדאטאבייס עדיין לא השתנה ואין בו טבלת Customers.
5. עדכון: Update-Database מחיל את ה-Migration. אחרי Refresh ב-SSMS מופיעה טבלת Customers, ריקה, עם ההגדרות שנקבעו.
6. בדיקה: המתנה וקבוצות הגיל נשארו כמו שהיו. לא נפגע שום מידע, ואין בעיה להוסיף Migration לדאטאבייס קיים, גם אם יש בו נתוני Seed ונתונים רגילים.
אחרי ההרצאה תוכלו להוסיף טבלה חדשה לפרויקט קיים ולעדכן את הדאטאבייס בלי לאבד נתונים.
השיעור הבא בקורס: שינוי טבלה קיימת עדכון מודל ב-Entity Framework

פרקי ההרצאה: הוספת מודלים ועדכון מסד הנתונים

  1. 00:00

    הוספת מודל חדש Customer

  2. 01:01

    הגדרת אינדקס על האימייל

  3. 01:43

    הוספת טבלת Customers לקונטקסט

  4. 02:19

    שמירת המידע הקיים בעת מיגריישן

  5. 02:58

    יצירת מיגריישן להוספת הלקוחות

תמלול ההרצאה: הוספת מודלים ועדכון מסד הנתונים

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

  1. 00:02

    מה קורה אם אנחנו רוצים להוסיף משהו למודלים להוסיף בוא נניח עוד מודל ולעדכן את הדאטאבייס איך כל הסיפור הזה מתנהל בואו ניגש רגע למודל ובואו נייצר בוא נניח עוד מודל עבור טבלת לקוחות נקרא לו customer ניפטר מזה ומזה ומזה והנה יש לנו customer לקסטומר יש יש Prop ID וCustomer

  2. 00:29

    יש בוא נניח סטרינג נעשה אותו סימן שאלה אולי לא רוצים לתת First Name ועוד אחד עבור Last Name ועוד אחד עבור E-Mail. בואו נגדיר במהירות את ה-Property את ה-Attribute סליחה זה יהיה Key ואנחנו רוצים שיהיה לו column וה-Column יהיה Customer ID בצורה כזאת כמו שעשינו מקודם יש לנו פה String Length עבור שם פרטי בוא נניח 20 תווים ועבור שם משפחה בוא נניח 50 ובוא נניח אימייל String Length.

  3. 01:11

    ניקח כאן את אינדקס, נעשה לו אינדקס על האימייל כי אם יש לי שתי לקוחות עם אותו האימייל אז משהו כנראה אולי לא אוקיי. נשים name of של אימייל ונגיד לו is your nick.

  4. 01:27

    הנה סיימנו לבנות עוד מודל שימו לב לקח לנו ממש שתי דקות לבנות מודל פה חסר לי משהו נראה לי שזה חסר לי יופי אז אחרי שבנינו את המודל אנחנו צריכים להגדיר בקונטקסט שיש טבלה של customers אז אנחנו הולכים לקונטקסט שלנו ובדיוק כמו שיש לנו h-groups ו-gifts בואו נייצר עוד פרופ אחד db-set

  5. 01:52

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

  6. 02:06

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

  7. 02:16

    נוסיף cute doll, נגיד שזה עולה 20 וחצי, וזה מתאים ל-age groups של babies שהוא היה ID אחד כי זה age group ID. נלחץ enter ואנחנו רואים שיש לנו מתנה אחת. למה אני מוסיף מתנה?

  8. 02:34

    מה הקשר בין מתנה לבין customer? אז אין קשר. מה שאני רוצה להראות זה שאם אנחנו עכשיו עושים migration זה לא פוגע במידע שקיים בין אם זה מידע שהוגדר כ-seed ובין אם זה מידע שהוספנו.

  9. 02:50

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

  10. 03:20

    אני מוסיף עכשיו לקוחות לדאטאבייס והמערכת

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

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

ההרצאה הבאה: שינוי טבלה קיימת - עדכון מודל ב-Entity Framework

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

  • יצירת Interceptor - עבור מסד הנתונים
  • מודלים למחזור חיי תוכנה
  • מה זה מסד נתונים ?
  • הוספת VMkernel

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

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