
from gift in db.Gifts מגדיר את האוסף ואת שם הפרמטר, שיועבר ל-Lambda כשהתחביר יתורגם לפונקציות. אפשר לבחור כל שם.where עם אותו תנאי מחיר, ו-orderby לפי gift.Price.select new עם gift.Id, gift.Name ו-gift.Price בלבד.query. הגדרתה לא פונה למסד הנתונים, וגם לא השימוש בתחביר Method-Like. רק query.ToList() ניגש למסד הנתונים ומריץ את השאילתה. בלי ToList לא מתקבלים הנתונים.join.הטקסט המלא של הדקות הראשונות בהרצאה «שאילתת LINQ פשוטה מסוג SQL-Like» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז אחרי שראינו את תחביר method-like בואו נראה תחביר sql-like מבצע את אותו הדבר בדיוק. בואו ניקח את הפונקציה נשכפל נגדיר מספר 3. אנחנו רוצים בעצם לייצר את אותה שאילתא.
אז אנחנו מבצעים את אותו הדבר על ידי מילים שמורות של שפת c-sharp ובאותו הסדר שזה כתוב כאן. אם יש לנו כאן קודם כל את השאילתא עצמה כלומר את קולקשן עצמו זה החלק של הפרום אז אנחנו מתחילים במילה פרום.
הדבר הבא אנחנו צריכים רגע להבין שכל אחת מהפונקציות האלה קיבלה למדה אקספרשן ובכל למדה אקספרשן יש לנו משתנה אני קראתי לו גיפט אפשר לקרוא לו ג'י לפעמים רוצים לקרוא לו באות אחת או שתיים כרגע זה הגיוני שהוא יהיה גיפט כי אנחנו רצים על קולקשן גיפט.
המשתנה הזה בעצם מתקבל כארגומנט ללמדה אקספרשן ודרכו אנחנו אומרים מה אנחנו רוצים להחזיר בחזרה בשביל אותה פונקציה. where, מה אנחנו רוצים לבחור.
order by, לפי מה אנחנו רוצים למיין. Select, מה אנחנו בעצם רוצים לבחור מכלל כל מתנה שמוחזרת. אבל זה אומר שכל אחת מהפונקציות תמיד תקבל איזשהו פרמטר כאן של למדה אקספרשן שמקבל גיפט אחת.
אם אתם זוכרים אמרנו שהתחביר הזה שאני מתחיל לכתוב כאן, שפת לינק הופך את עצמו לפונקציות האלה זאת אומרת שהוא הופך את עצמו לפונקציות שמקבלות למדה אקספרשן אז אנחנו צריכים להגדיר לו כאן מה השם של אותו פרמטר שתמיד אנחנו שולחים לפונקציה אני קראתי לו גיפט כמובן שאני יכול שם אחר כשהמערכת תהפוך את עצמה לפונקציות האלה אז היא תשלח פרמטר שנקרא גיפט לכאן
ואנחנו ממשיכים ואומרים in באיזה קולקשן אנחנו רוצים לבצע את החיפוש db נקודה גיפט ובדיוק אותו קולקשן שרשמנו פה. יורדים שורה ואז חלק ה-Ware. הנה יש לנו מילה שמורה שנקראת Ware.
אנחנו פשוט לוקחים את אותו הדבר שרשמנו כאן ושמים פה. המערכת לא יודעת מה התנאי שאנחנו רוצים, אז אנחנו אומרים לה עבור כל גיפט, זה בעצם הארגומנט של כל אחת מהפונקציות, מה אנחנו בעצם רוצים to Select ממנו, או ליתר דיוק לבחור ב-Ware ממנו?
Order Buy, עבור כל גיפט אנחנו רוצים את ה-Price. סלקט עבור כל גיפט אנחנו רוצים את הניו הזה שהגדרנו פה למעלה גיפט נקודה איי-די גיפט נקודה