PracticU

שימוש ב-Stored Procedure
ב-Entity Framework Core

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › שימוש ב-Stored Procedure ב-Entity Framework Core
מילון מושגים:
פרוצדורה מאוחסנת - קטע קוד SQL שמור במסד הנתונים שאפשר להפעיל לפי שם, לביצוע חוזר של פעולות על הנתונים.
Entity Framework - ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.
C# - שפת תכנות מונחית עצמים של מיקרוסופט, המשמשת בעיקר לפיתוח יישומים על פלטפורמת .NET.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
מודל - רכיב שמייצג את הנתונים ואת הלוגיקה העסקית באפליקציה. גם ייצוג מופשט של מערכת או תהליך.
SQL Injection - חולשה שבה קלט זדוני מוחדר לשאילתת SQL, ומאפשר לתוקף לקרוא או לשנות נתונים במסד.
DELETE - פקודת SQL למחיקת שורות מטבלה. גם שיטת HTTP לבקשת מחיקה של משאב בשרת.

שימוש ב-Stored Procedure ב-Entity Framework Core
ההרצאה מראה איך מפעילים מקוד C# את ה-Stored Procedure add gift שמוסיפה רשומה, ומסכמת את מה שנלמד על Stored Procedures ב-Entity Framework Code First.
איך זה עובד
1. הפונקציה: כותבים פונקציה סטטית add gift עם קונטקסט ועם נתונים לדוגמה: שם, מחיר 5.5 ו-h group id שערכו 2 (ילדים).
2. מי מבצע את הקריאה: Procedure שמבצעת insert לא נקראת דרך אוסף המודל Gift אלא דרך db.Database, עם אחת מהפונקציות ExecuteSql, ExecuteSqlInterpolated או ExecuteSqlRaw.
3. הגרסה הבטוחה: משתמשים ב-interpolated. היא מקבלת מחרוזת מסוג interpolated ומטפלת בגרשיים כדי למנוע SQL injection, בעוד ש-raw חשופה להתקפה.
4. שליחת הערכים: שולחים את שם ה-Procedure add gift ואחריו שלושת הערכים: name, price ו-h group id.
5. בלי שמירה נוספת: אין צורך בקריאה ל-SaveChanges, כי הפעולה מתבצעת ונשמרת בדאטה בייס מיד.
6. בדיקה: בדאטה בייס היו קודם שש מתנות. אחרי ההרצאה התוכנית מדפיסה done, ו-baby shark balloon מופיע בטבלה אחרי refresh.
שימו לב
אותו נוהל חל גם על Procedures של update ושל delete, שגם הן נקראות דרך db.Database.ExecuteSql. לכן המרצה לא מדגים אותן.
בסוף הוא מסכם: ב-Code First אפשר ליצור Stored Procedures ואת פקודות המחיקה שלהן במיגרציה (ב-Up מוסיפים וב-Down מוחקים), להריץ אותן בכמה דרכים, חלקן עם מודל, חלקן עם DTO, וחלקן עם insert, update או delete.

פרקי ההרצאה: שימוש ב-Stored Procedure ב-Entity Framework Core

  1. 00:00

    פונקציה להוספת מתנה

  2. 00:47

    קריאה ל-Procedure דרך db.database

  3. 01:23

    שליחת הערכים עם Interpolated

  4. 02:00

    אימות ההוספה בדאטאבייס

תמלול ההרצאה: שימוש ב-Stored Procedure ב-Entity Framework Core

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

  1. 00:02

    אז בואו נשתמש בסטורט פרוסיג'ר, איך אנחנו עושים את זה. אז אנחנו רוצים לבנות פונקציה static void add gift, נרשום פה adding a gift, נגדיר את הקונטקסט ואנחנו רוצים שיהיה לנו מידע שנשלח, בואו נגדיר כרגע name כלשהו, בואו ניקח בייבי שארט בלום ודצימל

  2. 00:31

    פרייס כלשהו נניח עולה חמש וחצי ו-H Group ID מתאים לילדים אז זה שתיים ואנחנו רוצים לקרוא לסטורט פרסידג'ר. קריאה לסטורט פרסידג'ר היא על ידי db.database.

  3. 00:53

    זאת בעצם הגישה לכל סטורט פרסידג'ר שעושה או אינסרט אנחנו לא ניגשים אליהם על ידי המודל מהפינג, לא על ידי גיפט, אפילו שאני מבצע פעולה על גיפט, אלא db.database ו-execute, יש לנו פה execute SQL, יש לנו פה Execute SQL Interpolated ויש לנו Execute SQL Raw, ויש לה את הסכנה לחטוף SQL Injection Attack ואז

  4. 01:21

    בנו את SQL Interpolated והיא מקבלת רק מכרוזת interpolated והחליפו אותה בsql שהיא אותו הדבר כמו זאת ומאוד דומה לה אנחנו רוצים לשלוח מכרוזת כזאת ואנחנו רוצים לקרוא לסטור פרוסיג'ר add גיפט ולתת לה את שלושת הערכים הנה ה name פסיק הנה ה price פסיק ולבסוף יש לנו את ה h

  5. 01:46

    group id יש לנו את הגישה לא צריך לבצע פה save changes זה אוטומטית תוקף הכל ושומר את המידע לדאטאבייס. בגלל ששלחנו פה סטרינג interpolated אז היא מחפשת גרש ומשכפלת בכדי למנוע sql injection בהקשר הזה של גרש.

  6. 02:06

    בואו נעתיק את זה לפה. נחזור רגע לדאטאבייס, נרפרש, נראה שיש לנו פה שש מתנות. האחרונה זה ה-fast fidget for kids שהוספנו. נחזור, נריץ, המערכת רצה, אומר לי done, ואני חוזר לדאטאבייס מרפרש והנה הבייבי שארק

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

ההרצאה הקודמת: יצירת Stored Procedure - לביצוע עדכון נתונים - EF

ההרצאה הבאה: הסבר על App Secrets

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

  • שימוש ב-Entity Framework - חלק 1
  • הכל על Stored Procedure
  • קריאה ל-Stored Procedure
  • הסבר על Console - דוט-נט Framework vs Core

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

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