
Install-Package Microsoft.EntityFrameworkCore.Tools ו-Install-Package Microsoft.EntityFrameworkCore.Design. אלה כלי פיתוח, לא שייכים לפרודקשן, ונדרשים לפקודות שיוצרות את הדאטאבייס.Add-Migration עם שם (בהרצאה InitialCreation) מבצעת build, ולכן לא יכולות להיות שגיאות קומפילציה, ויוצרת תיקיית Migrations עם קבצים. יש בהם Up שיוצר את הטבלאות, את ה-Seed Rows, הקשרים והאינדקסים, ו-Down שמוחק אותם.Update-Database: לוקח את ה-Migration החדש ביותר ומחיל אותו על הדאטאבייס.SQLEXPRESS ב-Connection String. אחרי התיקון Update-Database הצליח.nvarchar(20) ו-Not Null, וגם MinAge ו-MaxAge מסוג int. רשומות ה-Seed קיימות, ורשומה שנוספה ידנית קיבלה ID 5.nvarchar(100), Price הוא money, ו-AgeGroupID מסוג int עם Allow Null. אין עדיין רשומות.Script-Migration יוצר קובץ SQL מה-Migration, כדי להריץ על שרת אחר, למשל בפרודקשן. כדאי להוסיף -Output עם נתיב, אחרת הקובץ נוצר בתיקיית bin/Debug. בהרצאה: קובץ GiftShop.sql בתיקיית Migrations.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מסד הנתונים מהקוד Creating the Database» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז אחרי שבנינו את המודלים ואת הקונטקסט אנחנו יכולים לגשת ולייצר מהם את הדאטאבייס. איך עושים את זה? דבר ראשון אנחנו צריכים לגשת לחלונית ה-package-manager-console ולצרף שני נוגטס נוספים שמסוגלים לבצע את כל הפעולות האלה.
בואו ניגש ל-install package ואנחנו רוצים לצרף נוגט ראשון Microsoft.entityframeworkcore.tools.enter. והפקודה הבאה זה Install Package Microsoft.entityframeworkcore.design.
enter. אז ה-Tools האלה, בואו נסתכל עליהם כאן, זה בעצם כלים של פיתוח, אני לא באמת צריך אותם עבור פרויקט שהוא לא קשור ל-Development, זה לא משהו ששייך לפרודקשן אבל אני כן צריך אותם כאשר אני רוצה לבצע פקודות בפקאג' מנאג'ר שמייצרות את הדאטאבייס.
ננקה רגע את הפקאג' מנאג'ר קונסול ופקודה ראשונה נקראת Add עקף Migration מה זה Migration? Migration זה כאילו גרסה ספציפית של מודלים שמתארים סכמה של דאטאבייס כאשר אנחנו מבצעים Add מיגריישן אז אנחנו הולכים לייצר את הגרסה הנוכחית שקיימת במודלים האלה עבור יצירת הדאטאבייס.
יכול להיות שבהמשך אנחנו כמובן הולכים לראות את זה, נשנה את המודלים או נוסיף למודלים ואז נרצה לעדכן את הדאטאבייס, נצטרך לבנות מיגריישן נוסף, כלומר סכמה נוספת איך הדאטאבייס אמור להיראות.
כל פעם שאנחנו מבצעים אד מיגריישן אנחנו חייבים לתת לו שם. בגלל שזה המיגריישן הראשון שאני מייצר, אני נותן לו את השם initial creation אפשר לתת לו initial create initial migration in it מה שבא לכם וזאת הפקודה והוא מייצר לנו מיגרשן שימו לב קודם כל הוא עושה build זאת אומרת שלא יכול להיות אסור שיהיה פה שגיאות
קומפילציה הוא כותב לי build succeeded ומייצר את המיגרציה הנה יש לנו פה תיקייה שנקראת migrations שנוצרה לנו ובתוכה הוא יצר לנו סדרה של קבצים שמתארים את המיגרשן אוקיי, יש לנו אפשרות לבצע up, זה בעצם העלאת מיגריישן, או down, שזה הורדת מיגריישן. זאת אומרת שאם אני אבצע
up, לא היה לי שום דאטאבייס ואני מייצר את ה-initial create, אז זה מה שהוא מבצע, הוא יוצר את הטבלה age groups, יוצר את הטבלה gifts ובלה בלה בלה בלה בלה.
הנה הוא מוסיף לפה את ה-insert seed rows ומייצר את ריליישנשיפס ביניהם ואת האינדקסים וכדומה אם אנחנו נבצע דאון למיגריישן אז הוא פשוט מוחק אותם זה initial migration לא היה לי לפני זה שום דבר אז הוא פשוט עושה דרופ לטבלאות ולא יהיה לי בכלל טבלאות בדטאבייס. אז יש לנו פה כל מיני קבצים שמתארים את המיגריישן
אבל אנחנו לא באמת מתעסקים איתם אנחנו מתעסקים יותר עם פקודות של הpackage manager console אז הפקודה הראשונה שראינו זה add migration ואני נותן לה שם.
בואו נבצע פה clear, ננקה את הכל ואנחנו רוצים לתת פקודה נוספת שיוצרת את הדאטאבייס. זה שיצרנו מיגריישן לא יוצר לי את הדאטאבייס, הוא רק יוצר לי את הקבצים האלה.
שימו לב שיש לנו כאן את התאריך שהמיגריישן בדיוק נוצר ואנחנו לפני שניצר את הדאטאבייס בואו נפתח את ssms בכדי לראות מה יש בו עכשיו ומה הולך להיות בו אחרי שנגרום למיגריישן להיות בדאטאבייס.
אז הנה יש לנו פה את החלון התחברות הראשוני, בואו נעשה קונקט, נפתח את הדאטאבייסס ואין לנו כרגע דאטאבייסס. בסדר?
בואו נחזור לויזואל סטודיו ונלך לפקודה הבאה. הפקודה הבאה היא פקודה מאוד פשוטה והיא נקראת Update Database.
Update Database הולך לפה ל-Migrations ומחפש את המיגרציה הכי חדשה שיש ופשוט שופך אותה לדאטאבייס. Enter.
עוד פעם הוא עושה לי build, build succeeded ויש לנו פה שגיאה. A network-related or instant-specified error queue while establishing a connection to the SQL Server.
The server has not found. הוא לא מוצא את ה-server. למה הוא לא מוצא את ה-server? זה בעצם שגיאה של Connection String. יכול להיות שטעיתי ב-Connection String.
Connection String נמצאת פה, בואו נראה רגע. Server שווה נקודה, זה המחשב הנוכחי שלי, נכון? כשעשינו, כשעשינו קונקט אז הנה נקודה, אני