PracticU

יצירת Stored Procedure
Entity Framework Core

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

יצירת Stored Procedure Entity Framework Core
גם Stored Procedure אפשר לשמור במסד בשיטת Code First, באותה דרך כמו View: שאילתת יצירה, שאילתת מחיקה, והכנסה שלהן ל-migration.
מה זה ולמה
Stored Procedure הוא קטע קוד שמקבל ארגומנטים ומבצע פעולות, מקומפל ונשמר במסד, והתוכנית קוראת לו. לדברי המרצה הוא מהיר יותר משאילתות של Views, יכול להסתיר מידע, ומאפשר להסתיר את הטבלאות ולתת גישה רק דרכו ודרך Views.
השלבים העיקריים
1. שאילתת יצירה: מחרוזת public static readonly string במחלקת ה-SQL, CREATE OR ALTER PROCEDURE SearchGifts.
2. פרמטר: כל פרמטר מתחיל ב-@. בדוגמה @text מסוג nvarchar(100), בגודל זהה לעמודת שם המתנה בטבלה, שנבדק ב-Design.
3. הגוף: select * from Gifts where Name like '%' + @text + '%', כלומר חיפוש מתנות ששמן מכיל את הטקסט.
4. שאילתת מחיקה: DROP PROCEDURE IF EXISTS SearchGifts.
5. ב-migration: מוסיפים ב-Up קריאת Sql נוספת ליצירה, וב-Down קריאה למחיקה, ליד ה-View.
שימו לב
הרצת Update-Database שוב לא יוצרת את ה-Procedure, כי הטבלה __EFMigrationsHistory כבר רושמת ש-migration הזו בוצעה. אפשר למחוק אותה ולייצר חדשה. המרצה בוחר בקיצור: מוחק את השורה מהטבלה, ואז Update-Database מבצע את ה-migration שוב, והפרוצדורה מופיעה תחת Stored Procedures עם הקוד ששומרים. עדיין לא נבדקה, ועלולה להכיל שגיאה.
אחרי ההרצאה תוכלו לשמור Stored Procedure במסד דרך migration.
השיעור הבא בקורס: שימוש ב-Stored Procedure Entity Framework Core

פרקי ההרצאה: יצירת Stored Procedure Entity Framework Core

  1. 00:00

    שימוש ב-Stored Procedures ב-Code First

  2. 00:40

    יתרונות ה-Stored Procedure

  3. 01:16

    יצירת Procedure בשם Search Gifts

  4. 01:50

    הגדרת ארגומנט ה-text

  5. 02:46

    כתיבת ה-SELECT עם LIKE ו-wildcard

  6. 03:24

    שאילתת מחיקת ה-Procedure

  7. 04:15

    שילוב ה-Procedure במיגריישן

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

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

  1. 00:02

    בפרק הזה אנחנו רוצים לראות איך אנחנו ב-Entity Framework משתמשים ב-Stored Procedures. בדומה ל-Views יש לנו יכולת גם בשיטת Code First לייצר שאילתא של Stored Procedure לשמור אותה בדאטאבייס ולאחר מכן להשתמש בה.

  2. 00:21

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

  3. 00:43

    תוכנה הוא הרבה יותר מהיר משאילתות ה-views הוא יכול להסתיר מידע הוא יכול לבצע קוד במקום לגשת ישירות לטבלאות הוא מבצע את הקוד אנחנו יכולים כמו שראינו בעבר להסתיר את הטבלאות ולא לתת גישה אליהם ולתת גישה רק דרך views ו-stored procedures ועוד המון יתרונות אחרים.

  4. 01:03

    קודם כל אנחנו רוצים לראות איך אנחנו מייצרים לעצמנו איזושהי שאילתא שמאפשרת לשמור stored procedure ולהסיר stored procedure. בואו ניקח את זה, public static read only, String, Create ואני אומר לו שאני רוצה לייצר SP, Stored Procedure ובואו נייצר Stored Procedure שנקראת Search Gifts.

  5. 01:29

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

  6. 01:40

    הקוד שאנחנו רוצים הוא create or alter procedure נקרא לה search gifts ברבים. יש לנו פה סוגריים כאילו שאנחנו פונקציה בפיתוח תוכנה.

  7. 01:52

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

  8. 02:06

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

  9. 02:31

    ששם של מתנה יכול להיות עד 100 תווים אז אותו סוג נתונים אני רוצה להגדיר בשאילתה שאני בונה בסטור פרסיג'ר שאני בונה בואו נשים את זה פה nvarchar בגודל 100 אז ויש לנו פה את הקוד עצמו Select all from gifts where name like ופה אנחנו רוצים להגדיר שרק אם השם מכיל את הטקסט שהתקבל אז אנחנו רוצים לבחור אותו.

  10. 03:02

    איך אנחנו עושים מכיל? אז למדנו שיש בעצם אפשרות להשתמש ב-like עם wildcard זאת אומרת יש לנו כאן אחוז משורשר עם הטקסט, שאושר עם האחוז הזה ואז זה אומר שרק אם הוא מכיל את זה אז אנחנו בוחרים אותו בואו נחזיר את שני אלה לכאן יש לנו את הטקסט הזה בואו נייצר טקסט דומה עבור המחיקה של ה-Store Procedure נגדיר שאנחנו רוצים to drop SP השם של ה-SP היה Search Gifts נגדיר את זה

  11. 03:42

    פה ואנחנו רוצים להכניס אליו drop procedure if exist והשם שלו זה search gifts בואו נסמן ונראה שהsearch gift מסומן בארבע מקומות זה אומר שהוא קיים כמו שצריך יש לנו שאילתא שמאפשרת לייצר stored procedure יש לנו שאילתא שמאפשרת לי למחוק stored procedure ואנחנו רוצים לגלם את השאילתות האלה במיגריישן שבנינו

  12. 04:01

    שיוצרת structures נוספים אז אנחנו ניגשים וכאן אנחנו מוסיפים עוד פקודה, בואו נוסיף פקודה שיוצרת הפעם את ה-stored procedure המתאימה והפקודה הזאת מבצעת drop ל-stored procedure.

  13. 04:31

    זאת יוצרת לנו את ה-view, זאת יוצרת את ה-stored procedure, מוחקת את ה-view, מוחקת את ה-stored procedure, אם אנחנו עושים up הם נוצרים, אם אנחנו עושים down הם נמחקים.

  14. 04:40

    אנחנו רוצים להריץ מחדש את המיגרשן האחרונה,

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

ההרצאה הקודמת: שימוש ב-View - Entity Framework Core

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

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

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

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

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