
BookstoreContext ומוחקים את ה-namespace העודף.Microsoft.EntityFrameworkCore.SqlServer (שמביאה גם את Microsoft.EntityFrameworkCore), ואחריה Microsoft.EntityFrameworkCore.Tools ו-Microsoft.EntityFrameworkCore.Design, הדרושות ליצירת המסד.DbContext, ואת ה-using מוסיפים עם Ctrl+נקודה.Books מסוג רשימה של Book עם get ו-set, וכך נוצרת טבלה בשם Books.ctor ו-Tab. הקונסטרקטור מקבל DbContextOptions ומעביר אותו ל-base. המערכת היא שתיצור את האובייקט ותספק לו את ההגדרות, ולכן לא בונים אותו ידנית.builder.Services.AddDbContext<BookstoreContext> עם options שמגדירים UseSqlServer וה-connection string מקובץ ההגדרות. הפקודה יוצרת אובייקט, שומרת אותו במערכת ומתאימה אותו ל-SQL Server.add-migration initial-creation, שיוצרת תיקיית Migrations בלי לגשת למסד. אחר כך Update-Database, ואחרי רענון ב-SSMS מופיע מסד bookstore.Add-Migration initial-creationUpdate-DatabaseAddDbContext<BookstoreContext> עם UseSqlServerהטקסט המלא של הדקות הראשונות בהרצאה «יצירת מחלקת Context לתקשורת עם מסד הנתונים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כשבנינו את מחלקת המודל אנחנו יכולים לעבור ולבנות את מחלקת הקונטקסט, זאת שבעצם ניגשת לדטאבייס, יש לה את התקשורת עם הדטאבייס, היא יכולה לייצר דטאבייס וכדומה.
את זה אנחנו נבנה גם כן באזור של המודלים. בואו נבצע add, plus, בואו נקרא למחלקה, אוקטור, קונטקסט, ניפטר מה-namespace העודף הזה, נקודה פסיק, אנחנו רוצים להתחיל ולכתוב פה, כל מיני פקודות שמתעסקות עם הדטאבייס, ואנחנו צריכים לצורך כך להוסיף נוגט, בואו ננקה, נפתח את פקקג'י מנג'ר קונסול, אנחנו
יכולים לפתוח אותו מכאן, אנחנו יכולים לפתוח אותו כאן, למעלה, נוגט פקקג'י מנג'ר, פקקג'י מנג'ר קונסול, מה שאנחנו רוצים זה להתקין סדרת התקנות, שעשינו אותן בעבר בקורף של מסדי הנתונים, התקנה ראשונה, אנחנו רוצים את install macaf package, בואו נבצע, נראה אם הוא מוצא לנו את זה,
הנה Install Package, והתקנה נקראת Microsoft.EntityFrameworkCore.SQLServer, זה בעצם מתקין גם את Microsoft.EntityFrameworkCore וגם את SQL Server, גישתה למסעת הנתונים SQL Server איתו אנחנו נצא לעבוד, בואו נבצע Enter, והמערכת מתקינה את הנוגט הזה.
חץ למעלה מביא לי את ההתקנה האחרונה, ואנחנו רוצים למחוק את SQL Server ולהתקין Tools. זה בעצם מאפשר לנו לבצע פעולות בשביל לייצר את הדטאבייס, וחץ למעלה נמחק את זה ואנחנו רוצים להתקין את Design.
גם כן, צורך לבצע כל מיני פעולות ליצירת הדטאבייס. עכשיו אנחנו רוצים לבוא לכאן ולהגדיר שהמחלקה שלנו יורשת את DB Context. בואו נלחץ על המנורה.
ונגיד using Microsoft NT Framework Core, כי אנחנו צריכים את הנמספייס, או אפשר פשוט Ctrl נקודה, והוא פותח לי את זה. עכשיו המחלקה שלנו מהווה DB Context, כי הרשנו את DB Context, ויש לה את כל היכולות לגשת לדטאבייס, לבנות את הדטאבייס בקוד פרסט.
מה שאנחנו רוצים כרגע זה סך הכל רשימה של ספרים, וזה מה שאנחנו רוצים לבנות דטאבייס, טבלה שמייצגת ספרים, מבחינתנו זה תהיה רשימה, ואנחנו רוצים לנהל אובייקטי בוק שבנינו.
בואו נקרא לרשימה books ואז התבלת יקרה books, ואנחנו רוצים פה שזה יהיה property, נגדיר get ו-set. מעולה. הדבר הבא שאנחנו רוצים זה איזשהו קונסטרקטור, אז אם אני כותב ctor tab אז הוא בונה לי כל הקונסטרקטור, ולקונסטרקטור שאנחנו רוצים זה קונסטרקטור שיקבל db context options, וכל מה
שהוא יעשה זה יעביר את זה ל-base. כך אנחנו בעצם עובדים ב-rest API. זה משהו שקצת שונה ממה שעבדנו במודול אל המסדי נתונים, אבל ברסט API יש לנו תשתית מוכנה שמגדירה כל מיני נתונים שאנחנו נראה בהמשך, לגבי כל מיני אופציות לגבי ה-DB-Context שאנחנו בונים.
אז אנחנו לא רוצים כל כך קונסטרקטור ריק כמו שהיה לנו בעבר, אנחנו לא רוצים לבנות סתם אובייקט מסוג ה-DB-Context הזה, אנחנו רוצים בעצם שהמערכת יצר אובייקט ונראה בהמשך איך בדיוק המערכת מייצרת אובייקט.
אובייקט מהדבר הזה, ואוטומטית מגדירה את כל מה שצריך, איפה עוד הדבס נמצא, מי זה ה-connection string, נותנת לנו לקונסטרפטור, אנחנו מעבירים את זה למעלה, והנה יש לנו מחלקת קונטקסט מוכנה.
עכשיו מה שאנחנו רוצים לעשות, זה לגשת לפרוגרם, ולהגדיר בפרוגרם, שה-rest API שלנו יבנה אובייקט מהדבר הזה, ויגדיר לו את כל מה שצריך בקונסטרפטור.
איך עושים את זה? יש לנו כאן את ה- configure שמגדיר את ה-connection string, ומיד אחריו מה שאנחנו רוצים לבצע זה לבוא לבילדר שבונה לנו את ה-rest API, services, כל מיני שירותים פנימיים שפרויקט rest API מספקת לנו, ש-dotnet מספקת לנו, אחד מהשירותים זה add db context, זאת אומרת
שזה כל כך ידוע ו-needed ונדרש במערכות ובבקנד ובסט API, שמורו... אנחנו כנראה יודעים שאתם תצטרכו להוסיף איזה db context, הנה יש לנו פה פונקציה מיוחדת שיכולה להוסיף את הdb context, מה זה אומר להוסיף?
לבנות ממנו אובייקט, ואנחנו נשתמש באובייקט שהמערכת בונה, יש לזה סיבה למה אני לא רוצה לבנות אובייקט בעצמי, אנחנו נראה את זה באחד הסרטונים הקרובים.
בינתיים אני רק אומר למערכת, אני רוצה שתייצרי לי אובייקט, וציפי מהbookstore context הזה, ואנחנו נוטה. נותנים לו, זאת מחלקת ג'נרית, אנחנו נותנים לו את הטיפוס, book, store, context, זאת פונקציה, אז אנחנו פונים לפונקציה, ואמרים לו תקשיב, אנחנו צריכים
options, הנה פונקציה שמקבלת options, ומגדירה שהדטאבייס שלנו, הוא מסוג SQL Server, וSQL Server, צריך לקבל את ה-connection string, הקונקשן סטרינג שלנו כבר מוגדר באפ קונפיג, נקודה קונקשן סטרינג.
בואו נשים פה נקודה פסיק, נראה שאין פה שגיאה, לא עשיתי איזה אוגריים מיותרים איפשהו. אז בואו נבין עוד פעם מה זה הדבר הזה. הדבר הזה, בעצם הפקודה הזאת עושה כמה דברים.
הראשית היא יוצרת אובייקט מהבוקסטור קונטקסט, ושומרת את האובייקט איפשהו במערכת. בנוסף היא מגדירה שאנחנו משתמשים בSQL Server, אז האובייקט מותאם לתקשורת לSQL Server, והנה Connection String שכבר טענו ויש לנו אותה מוכנה.
עם האובייקט הזה אנחנו הולכים להשתמש כאשר אנחנו נרצה לגשת לדטאבייס. איפה האובייקט? איך קוראים לו? איך אני משיג אותו? נראה בהמשך.
אבל פה אמרתי לתשתית נע לייצר לי אובייקט. כל מה שאני רוצה לעשות זה את