PracticU

יצירת מחלקת Context
לתקשורת עם מסד הנתונים

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › יצירת מחלקת Context לתקשורת עם מסד הנתונים
יצירת מחלקת Context לתקשורת עם מסד הנתונים
אחרי שיש מחלקת מודל, בונים את מחלקת ה-Context שמתקשרת עם SQL Server, ומשתמשים ב-migration כדי ליצור את מסד הנתונים בשיטת Code First.
איך זה עובד
1. יצירת המחלקה: מוסיפים בתיקיית המודלים מחלקה בשם BookstoreContext ומוחקים את ה-namespace העודף.
2. התקנת חבילות NuGet: ב-Package Manager Console מתקינים Microsoft.EntityFrameworkCore.SqlServer (שמביאה גם את Microsoft.EntityFrameworkCore), ואחריה Microsoft.EntityFrameworkCore.Tools ו-Microsoft.EntityFrameworkCore.Design, הדרושות ליצירת המסד.
3. ירושה מ-DbContext: המחלקה יורשת מ-DbContext, ואת ה-using מוסיפים עם Ctrl+נקודה.
4. הטבלה: מגדירים מאפיין Books מסוג רשימה של Book עם get ו-set, וכך נוצרת טבלה בשם Books.
5. קונסטרקטור: כותבים ctor ו-Tab. הקונסטרקטור מקבל DbContextOptions ומעביר אותו ל-base. המערכת היא שתיצור את האובייקט ותספק לו את ההגדרות, ולכן לא בונים אותו ידנית.
6. רישום ב-Program: אחרי ה-configure של ה-connection string מפעילים builder.Services.AddDbContext<BookstoreContext> עם options שמגדירים UseSqlServer וה-connection string מקובץ ההגדרות. הפקודה יוצרת אובייקט, שומרת אותו במערכת ומתאימה אותו ל-SQL Server.
7. בדיקה ב-SSMS: מתחברים עם Windows Authentication (השרת מקומי, נקודה סלאש ו-SQL Express אצל המרצה) ורואים שעדיין אין מסד נתונים.
8. יצירת מסד: מריצים add-migration initial-creation, שיוצרת תיקיית Migrations בלי לגשת למסד. אחר כך Update-Database, ואחרי רענון ב-SSMS מופיע מסד bookstore.
פקודות והגדרות
- Add-Migration initial-creation
- Update-Database
- AddDbContext<BookstoreContext> עם UseSqlServer
שימו לב
- קבצי ה-Migrations נוצרים אוטומטית, והמרצה ממליץ להסתכל בהם ולא לערוך.
- בטבלה נוצרו העמודות book ID (מפתח), title, description, price מסוג money. Title ו-Description הוגדרו כ-nvarchar max, והמרצה מציין שאולי כדאי להגביל אורך. הטבלה ריקה.
עכשיו אפשר לחבר Context ל-SQL Server ולבנות מסד נתונים מהקוד.
השיעור הבא בקורס: יצירת Controller דוט-נט Core
מילון מושגים:
SQL Server – מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.
Namespace – מרחב שמות שמקבץ שמות של טיפוסים ורכיבים ומונע התנגשות בין שמות זהים בחלקים שונים של הקוד.
NuGet – מנהל החבילות של פלטפורמת .NET, המשמש להתקנה ולניהול ספריות בפרויקטים.
ירושה – מנגנון בתכנות מונחה עצמים שבו מחלקה יורשת תכונות ופעולות ממחלקת אב, ויכולה להרחיב אותן.
מאפיין – תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.
GET – שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו; הפרמטרים מועברים בדרך כלל בכתובת.
בנאי – מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
SSMS – הכלי הגרפי של מיקרוסופט לניהול SQL Server ולהרצת שאילתות (SQL Server Management Studio).

פרקי ההרצאה: יצירת מחלקת Context לתקשורת עם מסד הנתונים

  1. 00:00

    בניית מחלקת Context

  2. 00:37

    התקנת Entity Framework Core

  3. 01:57

    ירושה מ-DbContext

  4. 02:32

    קונסטרקטור עם DbContextOptions

  5. 03:43

    רישום ה-Context ב-Program

  6. 04:57

    חיבור ל-SQL Server וה-Connection String

תמלול ההרצאה: יצירת מחלקת Context לתקשורת עם מסד הנתונים

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

  1. 00:02

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

  2. 00:14

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

  3. 00:41

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

  4. 01:04

    הנה Install Package, והתקנה נקראת Microsoft.EntityFrameworkCore.SQLServer, זה בעצם מתקין גם את Microsoft.EntityFrameworkCore וגם את SQL Server, גישתה למסעת הנתונים SQL Server איתו אנחנו נצא לעבוד, בואו נבצע Enter, והמערכת מתקינה את הנוגט הזה.

  5. 01:27

    חץ למעלה מביא לי את ההתקנה האחרונה, ואנחנו רוצים למחוק את SQL Server ולהתקין Tools. זה בעצם מאפשר לנו לבצע פעולות בשביל לייצר את הדטאבייס, וחץ למעלה נמחק את זה ואנחנו רוצים להתקין את Design.

  6. 01:47

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

  7. 02:00

    ונגיד using Microsoft NT Framework Core, כי אנחנו צריכים את הנמספייס, או אפשר פשוט Ctrl נקודה, והוא פותח לי את זה. עכשיו המחלקה שלנו מהווה DB Context, כי הרשנו את DB Context, ויש לה את כל היכולות לגשת לדטאבייס, לבנות את הדטאבייס בקוד פרסט.

  8. 02:17

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

  9. 02:30

    בואו נקרא לרשימה books ואז התבלת יקרה books, ואנחנו רוצים פה שזה יהיה property, נגדיר get ו-set. מעולה. הדבר הבא שאנחנו רוצים זה איזשהו קונסטרקטור, אז אם אני כותב ctor tab אז הוא בונה לי כל הקונסטרקטור, ולקונסטרקטור שאנחנו רוצים זה קונסטרקטור שיקבל db context options, וכל מה

  10. 02:53

    שהוא יעשה זה יעביר את זה ל-base. כך אנחנו בעצם עובדים ב-rest API. זה משהו שקצת שונה ממה שעבדנו במודול אל המסדי נתונים, אבל ברסט API יש לנו תשתית מוכנה שמגדירה כל מיני נתונים שאנחנו נראה בהמשך, לגבי כל מיני אופציות לגבי ה-DB-Context שאנחנו בונים.

  11. 03:15

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

  12. 03:28

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

  13. 03:41

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

  14. 03:55

    איך עושים את זה? יש לנו כאן את ה- configure שמגדיר את ה-connection string, ומיד אחריו מה שאנחנו רוצים לבצע זה לבוא לבילדר שבונה לנו את ה-rest API, services, כל מיני שירותים פנימיים שפרויקט rest API מספקת לנו, ש-dotnet מספקת לנו, אחד מהשירותים זה add db context, זאת אומרת

  15. 04:19

    שזה כל כך ידוע ו-needed ונדרש במערכות ובבקנד ובסט API, שמורו... אנחנו כנראה יודעים שאתם תצטרכו להוסיף איזה db context, הנה יש לנו פה פונקציה מיוחדת שיכולה להוסיף את הdb context, מה זה אומר להוסיף?

  16. 04:35

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

  17. 04:47

    בינתיים אני רק אומר למערכת, אני רוצה שתייצרי לי אובייקט, וציפי מהbookstore context הזה, ואנחנו נוטה. נותנים לו, זאת מחלקת ג'נרית, אנחנו נותנים לו את הטיפוס, book, store, context, זאת פונקציה, אז אנחנו פונים לפונקציה, ואמרים לו תקשיב, אנחנו צריכים

  18. 05:05

    options, הנה פונקציה שמקבלת options, ומגדירה שהדטאבייס שלנו, הוא מסוג SQL Server, וSQL Server, צריך לקבל את ה-connection string, הקונקשן סטרינג שלנו כבר מוגדר באפ קונפיג, נקודה קונקשן סטרינג.

  19. 05:24

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

  20. 05:38

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

  21. 05:56

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

  22. 06:04

    אבל פה אמרתי לתשתית נע לייצר לי אובייקט. כל מה שאני רוצה לעשות זה את

לקורס המלא: קורס דוט-נט - NET Core. - עם Rest API

ההרצאה הקודמת: יצירת מודל של ספר - דוט נט NET Core.

ההרצאה הבאה: יצירת Controller - דוט-נט Core

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

  • יצירת Context Class - לגישה למסד הנתונים
  • יצירת Context Object
  • Application Context
  • יצירת מסד נתונים - SQL

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

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס ASP.NET
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio