
Scaffold-DbContext: הפקודה הראשית, והדגלים מגדירים אותה.-Provider: סוג מסד הנתונים, כאן Microsoft.EntityFrameworkCore.SqlServer. בבסיס אחר יהיה provider אחר.-Connection: ה-connection string, בתוך מחרוזת. בפעם הראשונה הפקודה נכשלה בגלל שני backslash, והדובר הסיר אחד והעמיד את המחרוזת במרכאות.-OutputDir: התיקייה בפרויקט שבה ייכתבו המודלים והקונטקסט, כאן Models.-Namespace: ה-namespace שיאגד את המחלקות.-DataAnnotations: כותב את ה-attributes של C# מעל המאפיינים והמחלקות. זה מראה איך בונים נכון בגישת Code First, ומאפשר גם להחזיר שינויים למסד בהמשך.-Force: דורס מחלקות קיימות במקום לדלג עליהן, כך שאפשר להריץ שוב.OnConfiguring ו-OnModelCreating.OnConfiguring, ומזהיר שיש שם מידע רגיש. כמו ב-Code First, כדאי להוציא אותו משם ל-appsettings או ל-App Secrets. הדובר מטפל בזה בהמשך.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מודלים ומחלקת Context ממסד נתונים קיים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שיצרנו סט-אפ לפרויקט אנחנו רוצים שאנטיטי פריימורק תיגש לדאטאבייס, תקרא אותו ותייצר לנו ממנו את המודלים ואת מחלקת הקונטקסט הדרושים.
הקונספט הזה נקרא scaffolding כאשר scaffold זה פיגום או תשתית או שלד של משהו. קונספט scaffolding זה בעצם היצירה הזאת של המודלים מהדאטאבייס. אז אנחנו רוצים לפנות ל-package manager console ולבנות את הפקודה, לכתוב את הפקודה, scaffold מקף, בוא נראה שהוא מזהה לי, db-context.
scaffold מקף db-context. הדגל הבא שהפקודה מקבלת זה provider, וזה בעצם איזה סוג של דאטאבייס אנחנו רוצים לעבוד איתו. זה יהיה Microsoft.entity-framework-core.sql- server.
אם היינו עובדים עם דאטאבייס אחר יכול להיות שהיה לנו דרייבר אחר או פרוביידר אחר שמאפשר לגשת ולקרוא אותו. הדגל הבא שאנחנו נותנים נקרא מקף קונקשן וזה בעצם הקונקשן סטרינג.
יש לנו פה את הקונקשן סטרינג אז בואו פשוט נעתיק אותו as is. ניקח אותו כל הקונקשן סטרינג מה הדאטאבייס ובדיוק המיקום ולאן אנחנו מתחברים וכדומה. הנה הדבקתי את כל הפקודה.
הדגל הבא שאנחנו נותנים נקרא מקף Output Deer. זה בעצם אומר באיזו תיקייה כאן בפרויקט אנחנו רוצים שאנטיטי פריימורק תכתוב את כל המודלים ואת המחלקת קונטקסט.
אז כשעבדנו בפרויקט הקודם הייתה לנו תיקייה שנקראת מודלס, בואו פשוט נגדיר אותה. הדגל הבא שאנחנו נותנים נקרא מקף Name Space, וזה איזה ניימספייס אנחנו רוצים שיאגד את כלל המחלקות, ואנחנו רוצים את הניימספייס הזה.
אז בואו נכתוב פה את הניימספייס הזה. לאחר מכן אנחנו נותנים דגל אחרון, כן, כל דגל זה פקודת קונפיגורציה לפקודה הראשית, וזה יהיה data annotations ברבים, וזה אומר שאנחנו רוצים ש-entity framework גם תכתוב data annotations, כל ה-C-Sharp Attributes האלה מעל ה-Properties ומעל הקלאסים,
זה משהו מאוד מאוד חשוב. א', זה יראה לנו איך נכון לבנות את כל הדברים האלה אם אנחנו בונים את הכל ב-Code First, ובגלל שיש את כל ה-Data Annotations אנחנו נוכל אם נרצה להשתמש בתשתית הזאת בשביל לעדכן את ה-Data Base כאילו שאנחנו בפרויקט Code First.
אז זו נקודה מאוד חשובה, כמובן בשלב מאוחר יותר אם נרצה לעשות שינויים ולהחזיר את השינויים בחזרה לדאטאבייס בטכניקה של ה-code first.
אז אנחנו כמובן רוצים את ה-data annotations, והדגל האחרון שכדאי לשים נקרא force, וה-force פשוט אומר שאם יש לנו כבר מחלקות כאלה, אנחנו רוצים שהפקודה הזאת תדרוס אותן ולא תדלג מעליהן או תתעלם, וזה מאפשר פעם הבאה לעשות עוד פעם את הפקודה ולדרוס מחלקות קודמות.
קודם כל בואו ניקח את כל זה נעתיק נדביק אולי איפשהו כאן שיהיה לנו אזכור לזה ונריץ והנה אנחנו רואים שהמערכת נכנסת לדאטאבייס קוראת בעצם בילדינג בילד סקסידד יש לנו פה איזה שהוא וורנינג ואני רואה גם שהוא נכשל תכף נבין למה הוא נכשל והוורנינג זה משהו שחשוב להבין למה אבל בואו נראה רגע למה הוא נכשל.
קודם כל, אני רואה כאן שוב פעם משהו שחשוב חשוב להיפטר ממנו. אנחנו לא אמורים שיהיה לנו שני backslashים, בואו ניפטר. דבר נוסף, אנחנו אמורים שיהיה לנו פה מחרוזת.
עדיף. בואו נשים פה מחרוזת. נעתיק את כל הפקודה שוב פעם, ננקה וננסה שוב. או, יופי, עכשיו הכל נבנה.
ה-Warning שקיבלנו הצהוב הזה מציינת שהמערכת הולכת לכתוב את הפרטים של ה-Connection String בתוך אובייקט הקונטקסט ופשוט מזהירה אותנו ואומרת לנו יש פה Sensitive Information שאנחנו כותבים וכמובן כדאי לנו מאוד ללכת ולהוציא את זה משמה בדיוק כמו שעשינו בפרויקט של ה-Code First לא כתבנו את ה-Connection String בתוך
אלא זה היה או באפ סטינגס או באפ סיקרטס. אבל אנחנו רואים שהוא הצליח ובואו נראה מה בעצם המערכת יצרה לנו. אז אנחנו פותחים את איקיאת מודלס ואנחנו רואים שיש לנו מחלקה בשם ברנד.
הטבלה בדטאבייס הייתה ברנדס ברבים ואנחנו רואים ש-NTT framework יצרה ברנד ביחיד. יש לנו את הברנד איי-די, אנחנו רואים שהוא מפתח ראשי, יש לנו את ה-Name, אנחנו רואים את הגודל שלו, יש לנו את ה-Navigation