
get gifts by price range עם create or alter procedure. היא מקבלת שני משתנים מסוג money, המחיר המינימלי והמקסימלי (משתנים ב-SQL מתחילים ב-@).where על טווח המחירים ו-order by price. אין כאן מזהה, אין h group id, ויש שדה מע"מ שלא קיים ב-Gift.drop procedure if exists) למיגרציה. כדי שתרוץ שוב, מוחקים מטבלת היסטוריית המיגרציות את המיגרציה האחרונה ומריצים update database.FromSql, כדי להימנע מ-SQL injection.the required column gift ID was not present in the results of a from sql operation.FromSqlInterpolated וגם עם FromSqlRaw.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת Stored Procedure שאינה מתאימה למחלקת Model» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הסטורט פרוסיג'ר שיצרנו מקודם זאת סטורט פרוסיג'ר שמחזירה את כל העמודות שקיימות בטבלת המתנות. בגלל שעשינו פה סטורט פרוסיג'ר שפשוט מחזירה בדיוק מידע שמתאים לאובייקט גיפט, יכלנו לקרוא לסטורט פרוסיג'ר מתוך קולקשן הגיפטס, ואז יכלנו לקבל את זה לליסט שבו כל פריט הוא טיפוס.
הדבר הזה נקרא מודל מפינג סטורט פרוסיג'ר. מודל מפינג סטורט פרוסיג'ר זה סטורט פרוסיג'ר שמחזירה מידע שמתאים בדיוק למחלקה של מודל. אבל מה קורה אם אנחנו בונים סטורט פרוסיג'ר שמחזירה מידע שלא תואם למחלקה של מודל?
בואו ניגש, נעתיק את כל הסטורט פרוסיג'ר הזאת לסטורט פרוסיג'ר הנוספת. נגדיר create stored procedure ונקרא לה בוא נגיד משהו שעשינו בעבר get gifts by price range. עשינו כל מיני שאילתות חלק בלינק חלק ברוקווירי שמחזירות רשימת מתנות
כתלות בטווח מחירים. אז בואו נבנה stored procedure שמבצעת משהו דומה. create or alter procedure בואו נקרא לה בדיוק את השם הזה ונגיד שאנחנו רוצים לקבל משתנה מין פרייס כל המשתנים של סטורט פרסידג'ר מתחילים בשטרודל הסוג שלו זה money כי זה מה שמוגדר בדאטאבייס וזה הגיוני כי זה money max
price money אנחנו רוצים להחזיר סטורט פרסידג'ר או להחזיר מידע למעשה שהוא קצת שונה ממודל מקורי של gift אז בואו נחזיר name וprice וגם נחזיר את המע"מ שזה price כפול 0.17 כל זה מגיע מתוך gifts ויש לנו where נגדיר שהprice יש לנו כאן את המשתנה שטרודל מין פרייס אנד שטרודל מקס פרייס ובוא נניח שאנחנו אפילו
מבצעים אורדר ביי פרייס הנה סטור פרוסיג'ר שמחזירה מידע שהוא קצת אחר קודם כל אין פה את ה-ID ששייך לגיפט ויש פה VAT שלא קיים בגיפט ואין פה את ה-H Group ID אז אי אפשר להגיד שהמידע הזה זה בדיוק מתאים לגיפט, זאת סוג אחרת של סטורד פרוסיג'ר, סוג אחר של סטורד פרוסיג'ר.
בואו נייצר לעצמנו את הסטורד פרוסיג'ר או את השאילתה שמוחקת אותה, נגדיר דרופ סטורד פרוסיג'ר זה השם, דרופ פרוסיג'ר איף אקזיסט.
יש לנו כרגע סטורד פרוסיג'ר שמתעסקת בסלקט שמחזיר מידע שלא תואם למודל, קודם כל אנחנו רוצים לשלב את זה פה ולהגיד הנה יש לנו פה את ה-create, get gift by price range ובואו נשכפל את זה ויש לנו כאן את ה-drop, get gifts by price range.
אחרי שעשינו את זה אנחנו רוצים לגרום לטעינה של הדבר הזה בדאטאבייס, אז אנחנו חוזרים לדאטאבייס למעשה ובדאטאבייס אנחנו רוצים לפנות טבלאות לטבלה הזאת של היסטוריית המיגריישן ונבצע מחיקה של המיגריישן האחרונה delete ואז אם אנחנו חוזרים ונבצע update database אז הוא יריץ מחדש את המיגרציה הזאת וישמור את ה-view ושתי ה-start procedure ב-database
בואו נריץ את זה נרפרש ctrl r ואנחנו רואים פה את המיגרציה בואו נלך נתפס את הסטארט פרוסיג'ר, פרוגרמביליטי, ריפרש, והנה יש לנו גט גיפטס ביי פריינס ריינג' מעולה.
אנחנו רוצים להשתמש איתה, אנחנו חוזרים, נעתיק את כל השאילתא הזאת, את כל הפונקציה הזאת, נדביק כאן, נשנה לה את השם במקום לסרצ' גיפט כי אנחנו לא עושים חיפוש.
אנחנו רוצים משהו שעשינו בעבר, את זה בעצם, זה היה מספר 5 ואנחנו רוצים מספר 6. זה לא יהיה מודל מפינג, זה יהיה או query mapping או dto mapping. תכף נבין מה זה dto.
אז אנחנו רוצים להריץ את זאתי, כאשר בואו נעשה פה את השינויים המתאימים. ניפטר פה מכל ההערות האלה. האמת אנחנו לא רוצים לקבל כל כך מהמשתמש או שכן רוצים בואו נגדיר משתנים בלי קשר ליוזר