PracticU

יצירה ושימוש ב-Stored Procedure
המתאימות למחלקת Model

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

יצירה ושימוש ב-Stored Procedure המתאימות למחלקת Model
פרוצדורה שמחזירה נתונים בדיוק בצורה של מודל קיים אפשר לקרוא דרך האוסף של אותו מודל. השיעור מראה את זה על שליפת כל הלקוחות.
השלבים העיקריים
1. הרקע: הפרוצדורה הקודמת שייכת ל-DML (Data Manipulation Language), כלומר יצירה, עדכון ומחיקה. גם פרוצדורה שמעדכנת או מוחקת הייתה מופעלת באותו אופן.
2. הפרוצדורה: CREATE OR ALTER PROCEDURE GetAllCustomers, בלי פרמטרים ובלי SET NOCOUNT ON, כי היא לא משנה מידע. היא מבצעת SELECT של כל העמודות מ-Customers. מריצים עם GO, ואחרי רענון היא מופיעה.
3. מתודה ב-Service: ב-CustomersService כותבים GetAllCustomers שמחזירה List<Customer>. פונים לאוסף Customers של ה-Context ומשתמשים ב-FromSql (עדיף מ-FromSqlRaw או מ-interpolated), עם שם הפרוצדורה בלי פרמטרים, ואז ToList. הדובר מציין שזה יכול לעבוד כי הפרוצדורה מחזירה בדיוק את שדות Customer.
4. הצגה: בתוכנית מתודה DisplayAllCustomers מקבלת את הרשימה ומדפיסה כל לקוח.
5. ToString בהרחבה: מעתיקים את מחלקת Customer לתיקיית Extensions ובונים בה override ToString שמחזיר מחרוזת עם שם מלא ואימייל. השם המלא מוגדר כמאפיין FullName שמחבר FirstName ו-LastName, מפני שייתכן שישתמשו בו הרבה.
אחרי השיעור אפשר לשלוף נתונים מ-Stored Procedure שמתאימה למודל קיים ולהציג אותם בצורה קריאה.
השיעור הבא בקורס: יצירה ושימוש ב-Stored Procedure שלא מתאימות למחלקת Model

פרקי ההרצאה: יצירה ושימוש ב-Stored Procedure המתאימות למחלקת Model

  1. 00:00

    סטורד פרוסיג'ר לבחירת מידע

  2. 00:40

    כתיבת Get All Customers והרצתה

  3. 01:17

    קריאה לפרוצדורה דרך קולקשן המודל

  4. 01:58

    הצגת הלקוחות בפרוגרם

תמלול ההרצאה: יצירה ושימוש ב-Stored Procedure המתאימות למחלקת Model

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

  1. 00:02

    הסטורט פרוסיג'ר שראינו מקודם שייכת לתחום ה-DML, Data Manipulation Language, או CAD, Create, Update, Delete. זאת אומרת שגם אם היינו בונים סטורט פרוסיג'ר שעושה עדכון או מחיקה, זה בעצם היה אותו הנוהל והיינו מפעילים אותה באותו האופן.

  2. 00:20

    בואו נבנה סטורט פרוסיג'ר שבוחרת מידע, הפעם שמתאים למודל. אז Creator, Altered Procedure, Get All Customers. אנחנו בעצם לא רוצים לקבל שום דבר לסטורט פרוסיג'ר אפשר להוריד פה את הסוגריים אין לנו צורך בסט no count on כי אנחנו לא משנים מידע ומה שאנחנו רוצים זה to select all from customers זאת הסטורט פרוסיג'ר בואו נריץ

  3. 00:47

    אותה go והיא אמורה להיות פה סטורט פרוסיג'ר זה refresh והנה אנחנו רואים אותה get all customers יופי בואו נשתמש בה אז זה מאוד מאוד פשוט אנחנו חוזרים ל-Customers Service ואנחנו רוצים לבוא לפה ומה שאנחנו רוצים לעשות זה Public, Avoid, Get All Customers ואנחנו רוצים לקרוא ל-Stored Procedure.

  4. 01:17

    איך קראנו ל-Stored Procedure בעבר שמחזירה נתונים? הלכנו ל-DB. והסתכלנו על ה-Collection של המודל, איזה קולקשן מתאים לנו זה יהיה customers כי הסטאוט פרוסידג'ר מחזירה בדיוק את טעם השדות של אובייקט קסטומר אז ניתן יהיה למלות אובייקטי קסטומר בצורה הזאת from sql עדיף מאשר row ומאינטרפולייטד אנחנו מריצים בצורה כזאת ואומרים לו תשמע

  5. 01:50

    אני רוצה לקרוא להסטאוט פרוסידג'ר זה היה get all customers פשוט האמת אין לי אפילו הוא מידע שאני נותן לה אז אני רק רושם את זה.

  6. 02:01

    ToList והאמת שאני רואה שפה זה לא אמור להיות ווייד כמובן זה אמור להיות list של customer יופי הנה הפונקציה בואו נבדוק אותה בפורגרם נלך לפורגרם בפורגרם אנחנו רוצים to display בואו נעתיק את זה האמת נדביק ויש

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

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

ההרצאה הבאה: יצירה ושימוש ב-Stored Procedure - שלא מתאימות למחלקת Model

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

  • הכל על Stored Procedure
  • קריאה ל-Stored Procedure
  • The V Model
  • הגדרה ושימוש ב-Suite Setup

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

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