PracticU

הרצת שאילתת SQL לעדכון הנתונים
ב-Entity Framework Core

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

הרצת שאילתת SQL לעדכון הנתונים ב-Entity Framework Core
Entity Framework מאפשרת להריץ גם שאילתות SQL גולמיות (raw), למשל כשיש סקריפט מוכן ורוצים לעבוד בלי ה-ORM. ההרצאה מראה את הדרך להרצת פקודות שמשנות נתונים.
איך מריצים
1. שתי אפשרויות: אחת להרצת insert, update ו-delete, ואחת להרצת select. כאן מדגימים את הראשונה בפונקציה add gift 2.
2. כתיבת השאילתה: מגדירים מחרוזת sql עם insert into gifts ושלוש העמודות Name, Price ו-AgeGroupID, עם הערכים Jack in a Box, 20.5 וקבוצת גיל 2.
3. הרצה: קוראים ל-db.database.ExecuteSqlRaw עם המחרוזת. אם השאילתה שגויה, התוכנה קורסת. בהרצה הראשונה היה בשאילתה שם עמודה שגוי, ותוקן.
4. הערך המוחזר: הפונקציה מחזירה int, מספר הרשומות שהושפעו (affected rows). כאן הערך הוא 1.
5. בדיקה בטבלה: אחרי רענון רואים את Jack in a Box. ה-ID שלו הוא 6 והדאטאבייס לא מנצל מחדש מזהים של רשומות שנמחקו.
פקודות וערכים
- db.database.ExecuteSqlRaw(sql)
- אפשר להריץ כך insert, update, delete וכל שאילתה שלא מחזירה נתונים, כמו truncate או create.
שאילתת select מתבצעת בטכניקה אחרת, שמוצגת בסרטון הבא.
עכשיו אפשר להריץ ב-Entity Framework Core פקודת SQL שמשנה נתונים ולדעת כמה רשומות הושפעו.
השיעור הבא בקורס: הרצת שאילתת SQL Select ב-Entity Framework Core

פרקי ההרצאה: הרצת שאילתת SQL לעדכון הנתונים ב-Entity Framework Core

  1. 00:00

    למה להריץ raw SQL ב-EF Core

  2. 00:58

    כתיבת שאילתת INSERT כמחרוזת

  3. 01:40

    הרצה עם ExecuteSqlRaw וערך ההחזרה

תמלול ההרצאה: הרצת שאילתת SQL לעדכון הנתונים ב-Entity Framework Core

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

  1. 00:02

    Entity framework נותנת לכם גם את האפשרות להריץ שאילתות sql אמיתיות, כלומר raw queries. למה? אולי יש לי איזה סקריפט מסוים שאני רוצה להריץ אותו בלי להתעסק עם ה-ORM, אולי יותר נוח לי לפעמים לעבוד בצורה כזאת.

  2. 00:20

    יש בעצם שתי אפשרויות, אפשרות להריץ insert, update ו-delete ואפשרות להריץ selecting. בואו נראה קודם כל איך אנחנו מריצים insert, ודיליט כאשר השאילתה היא row SQL. בואו נבנה לעצמנו איזושהי פונקציה.

  3. 00:36

    ניקח האמת את הפונקציה של ההוספה כי אנחנו בעצם רוצים להוסיף אבל זה אותו הדבר יהיה עבור עדכון או מחיקה. בואו נגדיר שאנחנו רוצים to add a gift נקרא לה שתיים כי כבר יש לנו אחת כזאת ובואו ניקח את זה נוריד רגע.

  4. 00:53

    ניקח את add a gift time יש לנו פה adding a gift. יש לנו פה את הcontext ומה שאנחנו רוצים אנחנו לא רוצים להתחיל להתעסק עם זה אנחנו רוצים להריץ שאילתת sql אמיתית בואו ניקח string sql ונכניס שאילתה רגילה השאילתת הוספה זה insert into ובואו נגיד שאנחנו בגיפטס לתוך name, Price ו-Age Group ID. אנחנו רוצים להוסיף

  5. 01:27

    את ה-Values. שם של מתנה, בואו ניקח Jack in a Box. נגיד שזה עולה 20.5 ונגיד שזה שייך ל-Age Group 2. יש לנו כרגע שאילתא. אנחנו רוצים עכשיו לפנות ל-db.database, שאילתות מועצות ברמת הדאטאבייס במקרה הזה ולאחר מכן execute sql raw.

  6. 01:57

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

  7. 02:08

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

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

ההרצאה הקודמת: הסבר מעמיק על Context - Entity Framework Core

ההרצאה הבאה: הרצת שאילתת SQL Select - ב-Entity Framework Core

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

  • שימוש ב-Entity Framework - חלק 1
  • הרצת טסט - Robot Framework
  • הסבר על Console - דוט-נט Framework vs Core
  • הסבר על WinForms - דוט-נט Framework vs Core

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

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