
Utils מוסיפים מחלקה Sql, static class, ובה מחרוזות public static readonly string.@.CREATE OR ALTER VIEW YoungGifts מביא שם מתנה, מחיר ושם קבוצת הגיל (AS HGroupName) מ-Gifts ב-JOIN עם HGroups, עם on על HGroupId. התנאי where HGroups.Name in מסנן רק את קבוצות Babies ו-Children, כי אלה המתנות שמחפשים הכי הרבה.select לבדו ב-New Query בכלי המסד, כדי לגלות טעויות לפני שמכניסים אותו ל-migration.DROP VIEW IF EXISTS YoungGifts.Up, ב-rollback (Down) יש להסיר אותו. לכן בטכניקת Code First כותבים שאילתה ליצירה וגם שאילתה למחיקה.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת שאילתות View דוט-נט Core» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לפרק שבו אנחנו רוצים לראות איך בעזרת Entity Framework Core בשיטת Code First אנחנו מתעסקים עם Views תזכורת קטנה, View זה בעצם טבלה וירטואלית או שאילתת SQL של Select שמכילה שם, נשמרת בדאטאבייס ואז אנחנו יכולים להשתמש בה כאילו שזאת טבלה וכל פעם שאנחנו קוראים לה אז השאילתא הכתובה שם מורדת, מורצת ומחזירה לנו מידע זה מאפשר לנו הרבה
דברים זה מאפשר לנו לקחת טבלה מורכבת ולבנות שאילתא שמפשטת אותה ככה שאנחנו משתמשים כל פעם עם הטבלה הפשוטה יותר זה מאפשר לנו להביא חלק מטבלה ולא את כל המידע שבטבלה על ידי view מתאים ועוד הרבה שימושים אנחנו רוצים לראות איך משתמשים בזה ב-entity framework כאשר השימוש הוא בשיטת code first אז בשיטת code first אנחנו ראינו שאנחנו יוצרים את המודלים
קודם כל ואז עושים מיגריישן ששומרת את זה בדאטאבייס. Vue זה לא מודל, לפחות לא בהתחלה. Vue זה שאילתא שחייבת להיות בדאטאבייס. לכן אנחנו רוצים לייצר שאילתא ולגרום לשאילתא להישמר בדאטאבייס.
אם היינו עובדים בשיטת Database First אז היינו יוצרים אותה בדאטאבייס מלכתחילה. בגלל שאנחנו בשיטת code first אנחנו יוצרים אותה אצלנו בפרויקט ואנחנו הולכים ל-utils ומוסיפים קלאס בואו נקרא לה קלאס sql נוריד כאן את זה נבצע namespace בצורה כזאת ויש לנו כאן איזה שהיא קלאס שהתפקיד שלה זה להחזיק שאילתות sql.
נגדיר את הקלאס כ-static-class זה אומר שכל מה שנמצא בתוך הקלאס הזה הוא סטטי בלבד חייב להיות סטטי ואנחנו רוצים לבנות כאן public static read only אנחנו לא רוצים לשנות את זה סטרינג שמכילה את השאילתה ליצירת view בואו נקרא לה create view underline ואת השם של ה-view שאנחנו רוצים ליצור איזה view אנחנו רוצים ליצור
אנחנו רוצים view שמביא רק חלק מהדברים שקיימים בטבלה המקורית. הטבלה המקורית שלנו, בוא נגיד, היא טבלת המתנות בדאטאבייס.
אם נסתכל רגע על הדאטאבייס, אז נוכל לראות שיש לנו כאן טבלת המתנות, וטבלת המתנות מביאה מתנות מכל מיני גילאים. ובוא נגיד שאנחנו רואים שהרבה פעמים רוצים להביא מתנות רק לילדים או תינוקות.
זה בעצם בייביז, וזה צ'ילדרן. אחד זה בייביז, שתיים זה צ'ילדרן, זה הטווחי גילאים שיש לנו. ומה שכאילו שמנו לב, או במערכת אמיתית שמו לב, זה שרוב המתנות זה המתנות האלה שמחפשים.
פחות מחפשים מתנות לטינג'רס ולאדלס, ולכן אנחנו רוצים תמיד לבצע שאילתות, או המון פעמים לבצע שאילתות, ולהביא רק מתנות כאלה.
אין בעיה. בואו נייצר view שמביא את הסוגים האלה של המתנות, נקרא ל-v הזה, young gifts, כאילו מתנות לצעירים.
ואנחנו רוצים להכניס את השאילתה. בגלל שהשאילתה הזאת בנויה ממספר חלקים, אז אנחנו רוצים גם לרדת שורה. אבל אנחנו לא יכולים לרדת שורה במחרוזת רגילה.
אנחנו יכולים לרדת שורה במחרוזת שיש לפניה שטרודל. השטרודל הזה אומר שאנחנו יכולים גם לרדת שורה כאן, אין בעיה, ולכתוב את המחוזת בצורה הזאת.
אז אנחנו רוצים to create or alter view, נקרא לו young gifts. הקונספט זה לא מתנות צעירות, אלא מתנות לצעירים, אבל הבנתם את הרעיון.
אפשר לקרוא לה גם young one gifts, אבל לצורך הפשטות אני אקרא לה young gifts, מתנות לצעירים. Select gifts.name.gifts.price hgroups.name as hgroup name ואנחנו רוצים להביא את זה from גם gifts.join hgroups ואנחנו רוצים שהאון שלנו יהיה gifts.hgroupid שווה hgroups.hgroupid בצורה כזאת, כאן מגיע חלק של ה-where hgroups.name in תביא לי רק כאלה ששייכות לבייביז
ו-children ויש לנו כרגע את כל השאילתה שיוצרת את ה-view זאת אומרת שאם היינו מבצעים בדאטאבייס רק את זה האמת שהרבה פעמים כדאי פשוט לקחת רק את ה-select ללכת לדאטאבייס, לייצר New Query, להדביק ולראות מה הוא מביא.
יכול להיות שכבר כאן יש טעות, אז זה חוסך