PracticU

מחרוזת ההתחברות למסד הנתונים
Connection String - Entity Framework

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › מחרוזת ההתחברות למסד הנתונים Connection String - Entity Framework
מילון מושגים:
Entity Framework - ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.
NuGet - מנהל החבילות של פלטפורמת .NET, המשמש להתקנה ולניהול ספריות בפרויקטים.
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
Lambda - פונקציה קצרה ואנונימית בקוד. גם שירות של AWS להרצת קוד בענן בלי לנהל שרתים.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

מחרוזת ההתחברות למסד הנתונים Connection String - Entity Framework
מגדירים Connection String בקובץ appsettings.json ובונים מחלקה סטטית שקוראת אותה, כדי שהקוד יוכל להתחבר למסד הנתונים.
השלבים העיקריים
1. מה זה Connection String: מחרוזת אחת שמתארת איפה מסד הנתונים נמצא, מה שמו, ואם צריך משתמש וסיסמה. מקובל להגדיר אותה בקובץ appsettings.json תחת ConnectionStrings, עם שם שבוחרים (בהרצאה GiftShop).
2. תוכן המחרוזת: שרת, מסד נתונים ואימות. בשרת כותבים . ל-SQL Express, וב-JSON צריך לכתוב backslash פעמיים. אחרי נקודה פסיק בא Database עם שם המסד. בלי משתמש וסיסמה כותבים trusted_connection=true. ב-Entity Framework Core מוסיפים גם TrustServerCertificate=true.
3. חבילת NuGet: הטיפוס IConfigurationRoot לא קיים ב-.NET עצמו. מתקינים דרך Package Manager Console את Microsoft.Extensions.Configuration.Json, ואז מוסיפים את ה-using.
4. מחלקת AppConfig: תיקיית Utilities, ובה מחלקה סטטית AppConfig. משתנה פרטי readonly (בשם עם קו תחתון בהתחלה) בטיפוס IConfigurationRoot, שמאותחל ב-constructor סטטי: new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().
5. תכונת ConnectionString: מחזירה _appSettings.GetConnectionString("GiftShop"). כדי להיפטר מאזהרת null מוסיפים סימן קריאה, שאומר למהדר שבוודאות יש ערך. אם בכל זאת יהיה null התוכנה תקרוס. הדובר ממיר את ה-getter לביטוי lambda בשורה אחת.
טעויות נפוצות
- הרצה הראשונה קורסת עם השגיאה שהקובץ appsettings.json לא נמצא. הקובץ נמצא ברמת הפרויקט, אבל התוכנה מחפשת אותו בתיקיית ההרצה (bin/Debug/net7).
- הפתרון: מקש ימני על הקובץ, Properties, והגדרת Copy to output directory ל-Copy if newer. Always מעתיק בכל פעם שלא לצורך. אחרי Rebuild הכל עובד ומודפסת מחרוזת ההתחברות.
אחרי ההרצאה יש לכם מחרוזת התחברות בקונפיגורציה ומחלקה שמספקת אותה לקוד.
השיעור הבא בקורס: יצירת מחלקות - Model Classes לתיאור הטבלאות שבמסד הנתונים

פרקי ההרצאה: מחרוזת ההתחברות למסד הנתונים Connection String - Entity Framework

  1. 00:00

    מהי מחרוזת ההתחברות

  2. 00:54

    בניית ה-Connection String

  3. 01:53

    הגדרת Trusted Connection

  4. 03:08

    בניית מחלקת AppConfig

  5. 04:25

    התקנת Package לקריאת הקונפיגורציה

  6. 05:56

    טיפול בערכי Null עם סימן קריאה

  7. 07:23

    בניית ConfigurationBuilder בקונסטרקטור

  8. 08:18

    החזרת ה-Connection String מהקובץ

תמלול ההרצאה: מחרוזת ההתחברות למסד הנתונים Connection String - Entity Framework

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

  1. 00:02

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

  2. 00:20

    וכל דבר אחר שנדרש בכדי שהאפליקציה שלנו תתממשק ותתחבר למסד הנתונים. מה שמקובל לבצע זה להגדיר את ה-ConnectionString בקובץ ה-AppSettings.

  3. 00:33

    אז בקובץ ה-AppSettings שהוא JSON אנחנו יוצרים כאן ConnectionStrings הנה אנחנו רואים את זה כאן אפילו ובתוך ה-ConnectionStrings אנחנו נותנים שם מומצא ל-ConnectionString אני יכול לקרוא לה בכל שם אני אקרא לה gift shop אפשר לקרוא לה gift shop נניח conSTR

  4. 00:54

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

  5. 01:24

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

  6. 01:44

    זה לא חייב להיות אותו השם כמו ה-connection string, פשוט נראה לי הגיוני ששם של דאטאבייס של של חנות מתנות יקרא gift shop הדבר הבא זה האם יש לנו user וסיסמה לדאטאבייס אם יש אני רושם user ID ואז user שימו לב רווח ID ואז את הuser שם user name נקודה פסיק פסוורד שווה ואיזה סיסמה שם פסוורד אמיתית שקיימת עבור הדאטאבייס אנחנו לא הולכים להתעסק כרגע

  7. 02:14

    עם user name ופסוורד אנחנו צריכים לציין שאין user name ופסוורד וזה יהיה trusted_connection שווה true לאחר מכן עוד פעם נקודה פסיק ובאנטיטי framework core הוסיפו עוד הגדרה שאנחנו צריכים לספק והיא מתארת משהו שקשור לתקשורת המאובטחת בין האפליקציה לבין הדאטאבייס וההגדרה היא trust Trust Server Certificate שווה Trust

  8. 02:45

    Server Certificate שווה Trust. והנה יש לנו כרגע את ה-ConnectionString שיכולה להתחבר למסד הנתונים. הדבר הבא שאנחנו רוצים לבצע זה לבנות איזשהי קלאס שתאפשר לנו לקבל את ה-ConnectionString בצורה פשוטה.

  9. 03:04

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

  10. 03:19

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

  11. 03:38

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

  12. 04:08

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

  13. 04:25

    למה אין לי אותו? אין אותו ב.NET אז התשובה היא שהוא קיים בנוגט ואנחנו צריכים בשבילו להתקין נוגט לכן אנחנו כרגע נשים את זה בהערה ונגיע לחלון הנוגט שראינו כבר או בשיטה הזאת Package Nuget Manager אפשר כמובן ללכת לממשק של נוגט אבל כמו שאמרנו עדיף להשתמש עם החלונות

  14. 04:47

    האלה כי אז הפקודה תביא לנו בולט מה שאנחנו רוצים ולא נטעה בפקודה או שאנחנו יכולים פשוט את ה-Control Back Tick והוא פותח לנו את החלונית הזאת אפשר לנקות אותה אנחנו רואים שיש לי פה רק פרויקט אחד ויחיד והפקודה היא Install Macaf Package אנחנו רוצים את Microsoft.Extensions.Configuration.Json.

  15. 05:18

    הנה אנחנו רואים שהוא התקין לנו, אפשר גם לראות שיש לנו פה את ה-package Microsoft.Extensions.Configuration.Json, מעולה, ואנחנו יכולים לחזור אם אנחנו נתחיל לכתוב כרגע iConfiguration.Root, הוא אמור לתת לנו את המנורה.

  16. 05:36

    ונורא אומר לי עכשיו, אני באמת מכיר את זה, זה הגיע מהפאקג' הזה, בוא תלחץ כאן ואני פשוט אדליק לך את היוזינג שלו פה למעלה. בואו נשלים את הפקודה, זה היה underline up settings.

  17. 05:49

    אם אנחנו רוצים להיפטר מכל היוזינג שהם לא בשימוש, אפשר ללחוץ במקש ימני ו-remove and sort using. בואו נעשה את זה. עוד דבר שקיים כאן בדוטנט קור שהוסיפו באחת הגרסאות, וההתעסקות עם נעלים.

  18. 06:07

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

  19. 06:30

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

  20. 06:45

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

  21. 06:59

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

  22. 07:17

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

  23. 07:38

    ואנחנו רוצים להכניס לתוכו New ConfigurationBuilder, נקודה, יוצר לנו Object ConfigurationBuilder ו-Add JSON File, ואז הוא אומר לי תגיד איזה קובץ אתה רוצה להוסיף, זה יהיה AppSettings.Json ו-.Build, בוא תבנה לי בבקשה את כל האובייקט הזה שמכיל את הקונפיגורציה שנמצאת בתוך הקובץ.

  24. 08:06

    ואז פעם אחת הוא טוען את הקובץ הזה, שימו לב שאין לי פה נתיב אז הוא יחפש אותו בתוך ה-execution, בתוך איפה שנמצא ה-execution של הפרויקט. והוא לא ימצא אותו שם כי הקובץ לא נמצא שם, הוא נמצא ברמת הפרויקט.

  25. 08:22

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

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

ההרצאה הקודמת: יצירה פרויקט חדש - ב-Visual Studio

ההרצאה הבאה: יצירת מחלקות - Model Classes - לתיאור הטבלאות שבמסד הנתונים

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

  • חיבור למסד נתונים - Connection String
  • יצירת מחרוזת התחברות - למסד הנתונים
  • שפת JavaScript - מחרוזת - String
  • שימוש ב-Entity Framework - חלק 1

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

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