
select * from gifts where price >= 20 and price <= 40 order by price.db.gifts.FromSqlRaw (ולא ל-db.database). הפונקציה מחזירה query, תיאור של שאילתה שעדיין לא הורצה.query.ToList() ומקבלים רשימת Gift, ואז מציגים את התוצאות.name ו-price בלבד הופיעה השגיאה שהעמודה gift ID חסרה, ואחרי הוספתה הייתה שגיאה שהעמודה age group ID חסרה.price * 1.17 as vat price, תקינה ב-SQL אבל אין לה מקום באובייקט Gift, ולכן אין בה תועלת.הטקסט המלא של הדקות הראשונות בהרצאה «הרצת שאילתת SQL Select ב-Entity Framework Core» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
להרצת שאילתת Select על ידי שאילתת rawsql בואו נעתיק את הפונקציה האחרונה ובואו נניח שאנחנו רוצים to display gifts by price range בואו נדיר displaying gifts by price range מינימום נניח 20 מקסימום נניח 40 אנחנו רוצים לראות את התוצאה.
ניקח את הפונקציה, נשים פה, הנה הקונטקסט שלנו, מה אמורה להיות השאילתא? שאילתת ה-SQL אמורה להיות, בואו ניפטר רגע מכל זה, Select all from gifts where price גדול שווה ל-20 and price קטן שווה מ-40, ובואו אפילו נמיין את זה,
order by price. יש לנו פה שאילתה שהיא שאילתת SQL, מקורית אנחנו רוצים להריץ אותה אז אנחנו ניגשים לטיבי נקודה והפעם הולכים לגיפטס.
מקודם זה היה דאטאבייס בכללי עכשיו זה גיפטס נקודה from raw sql סליחה from sql raw וזה מחזיר לנו קווירי קווירי זה בעצם תיאור של שאילתה שעדיין המערכת מחזיקה את הנתונים בקווירי אנחנו רוצים להפוך את הקווירי לליסט ליסט של גיפטס.
כי זה פקודת סלקט, אנחנו רוצים לבחור גיפט. גיפט שווה query.toList ופשוט להציג את הכל, אז את זה אנחנו לא צריכים. יש לנו האמת פה למעלה את הקוד הזה, שפשוט מריץ ומציג את כל המתנות, אז נעתיק ונדביק אותו פה.
ובואו נראה רגע, אנחנו רוצים לבחור בין 20 ל-40. מה יש לנו? יש לנו 20.5 בלבד, אוקיי, זה לא כזה בין 20 ל-40, ייתן לנו רק 20.5, טוב, בואו ננסה להריץ מה כבר יקרה.
נריץ רגע, והוא אומר לנו שרק Jack in the Box זה בין 20 ל-40, בסדר, בואו נגיד לו, תשמע, אני רוצה לראות בין 10 ל-40, אז אנחנו נראה גם את ה-cute doll הזה, 10 עד 40 בואו נריץ ויש לנו גם את ה-Qtol.
צריך להבין שזה לא כזה טריוויאלי להריץ שאילתות באנטיטי פריימוור קור של סלקט מפני שברגע שהמידע שמוחזר לנו הוא לא בדיוק מתאים לאובייקטים של ה-ORM שלנו אז המערכת לא תסכים והיא תקרוס.
יש פתרונות לדבר הזה אנחנו נראה אותם בהמשך אבל בואו רגע נבין מה זה אומר. נניח שהייתי אומר, אני לא רוצה להביא את הכל, אני רוצה להביא, לא יודע, חלק.
תביא לי רק name ותביא לי price בלבד. תביא לי גם את ה-ID שלא יהיה בעיה, זה נקרא gift ID מהדאטאבייס. ותקרא לו האמת בשם ID, כי אצלנו זה ID. בואו נריץ, ואנחנו בעצם אמורים לקבל קריסה, והוא אומר לנו, the required column gift ID was not present in the results of from SQL. בואו נוריד את זה, אולי הוא בעצם חייב