PracticU

שאילתת LINQ פשוטה
מסוג SQL-Like

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › שאילתת LINQ פשוטה מסוג SQL-Like
מילון מושגים:
LINQ - יכולת ב-.NET לכתוב שאילתות על אוספים ומקורות נתונים ישירות בתוך קוד C# בתחביר אחיד.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
תחביר - אוסף הכללים של שפת תכנות הקובעים כיצד לכתוב קוד תקין. הפרתם גורמת לשגיאת תחביר.
C# - שפת תכנות מונחית עצמים של מיקרוסופט, המשמשת בעיקר לפיתוח יישומים על פלטפורמת .NET.
Lambda - פונקציה קצרה ואנונימית בקוד. גם שירות של AWS להרצת קוד בענן בלי לנהל שרתים.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
Join - פעולת SQL שמשלבת שורות משתי טבלאות או יותר על בסיס קשר ביניהן.

שאילתת LINQ פשוטה מסוג SQL-Like
אותה שאילתה מההרצאה הקודמת, הפעם בתחביר SQL-Like: מילים שמורות של C# שמופיעות באותו סדר כמו ב-SQL.
השלבים העיקריים
1. משתנה הטווח: from gift in db.Gifts מגדיר את האוסף ואת שם הפרמטר, שיועבר ל-Lambda כשהתחביר יתורגם לפונקציות. אפשר לבחור כל שם.
2. סינון ומיון: where עם אותו תנאי מחיר, ו-orderby לפי gift.Price.
3. בחירה: select new עם gift.Id, gift.Name ו-gift.Price בלבד.
4. הרצת השאילתה: הביטוי מחזיר רק שאילתה, ולכן שמים אותו במשתנה query. הגדרתה לא פונה למסד הנתונים, וגם לא השימוש בתחביר Method-Like. רק query.ToList() ניגש למסד הנתונים ומריץ את השאילתה. בלי ToList לא מתקבלים הנתונים.
התוצאה זהה לשיטה הקודמת.
איזה תחביר לבחור
למרצה נראה SQL-Like נקי יותר וברור יותר, כי יש בו פחות Lambda ו-Callbacks. יש מתכנתים שמעדיפים את התחביר הבסיסי, וכל אחד יכול לעבוד עם הנוח לו. לשאילתות פשוטות הוא ישתמש בכל אחד מהם, ובמורכבות יותר ייטה ל-SQL-Like. ההרצאה הבאה מוסיפה שאילתה עם join.
אחרי ההרצאה תוכלו לכתוב את אותה שאילתה בשני התחבירים ולדעת מתי היא באמת מורצת.
השיעור הבא בקורס: שאילתת LINQ מורכבת מסוג Method-Like

פרקי ההרצאה: שאילתת LINQ פשוטה מסוג SQL-Like

  1. 00:00

    תחביר SQL-Like בלינק

  2. 00:40

    המשתנה בלמדה אקספרשן

  3. 01:17

    המרת לינק לפונקציות

  4. 01:55

    בניית השאילתה from ו-where

  5. 02:29

    בחירת שדות ב-Select

תמלול ההרצאה: שאילתת LINQ פשוטה מסוג SQL-Like

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

  1. 00:02

    אז אחרי שראינו את תחביר method-like בואו נראה תחביר sql-like מבצע את אותו הדבר בדיוק. בואו ניקח את הפונקציה נשכפל נגדיר מספר 3. אנחנו רוצים בעצם לייצר את אותה שאילתא.

  2. 00:19

    אז אנחנו מבצעים את אותו הדבר על ידי מילים שמורות של שפת c-sharp ובאותו הסדר שזה כתוב כאן. אם יש לנו כאן קודם כל את השאילתא עצמה כלומר את קולקשן עצמו זה החלק של הפרום אז אנחנו מתחילים במילה פרום.

  3. 00:37

    הדבר הבא אנחנו צריכים רגע להבין שכל אחת מהפונקציות האלה קיבלה למדה אקספרשן ובכל למדה אקספרשן יש לנו משתנה אני קראתי לו גיפט אפשר לקרוא לו ג'י לפעמים רוצים לקרוא לו באות אחת או שתיים כרגע זה הגיוני שהוא יהיה גיפט כי אנחנו רצים על קולקשן גיפט.

  4. 00:56

    המשתנה הזה בעצם מתקבל כארגומנט ללמדה אקספרשן ודרכו אנחנו אומרים מה אנחנו רוצים להחזיר בחזרה בשביל אותה פונקציה. where, מה אנחנו רוצים לבחור.

  5. 01:08

    order by, לפי מה אנחנו רוצים למיין. Select, מה אנחנו בעצם רוצים לבחור מכלל כל מתנה שמוחזרת. אבל זה אומר שכל אחת מהפונקציות תמיד תקבל איזשהו פרמטר כאן של למדה אקספרשן שמקבל גיפט אחת.

  6. 01:25

    אם אתם זוכרים אמרנו שהתחביר הזה שאני מתחיל לכתוב כאן, שפת לינק הופך את עצמו לפונקציות האלה זאת אומרת שהוא הופך את עצמו לפונקציות שמקבלות למדה אקספרשן אז אנחנו צריכים להגדיר לו כאן מה השם של אותו פרמטר שתמיד אנחנו שולחים לפונקציה אני קראתי לו גיפט כמובן שאני יכול שם אחר כשהמערכת תהפוך את עצמה לפונקציות האלה אז היא תשלח פרמטר שנקרא גיפט לכאן

  7. 01:52

    ואנחנו ממשיכים ואומרים in באיזה קולקשן אנחנו רוצים לבצע את החיפוש db נקודה גיפט ובדיוק אותו קולקשן שרשמנו פה. יורדים שורה ואז חלק ה-Ware. הנה יש לנו מילה שמורה שנקראת Ware.

  8. 02:07

    אנחנו פשוט לוקחים את אותו הדבר שרשמנו כאן ושמים פה. המערכת לא יודעת מה התנאי שאנחנו רוצים, אז אנחנו אומרים לה עבור כל גיפט, זה בעצם הארגומנט של כל אחת מהפונקציות, מה אנחנו בעצם רוצים to Select ממנו, או ליתר דיוק לבחור ב-Ware ממנו?

  9. 02:25

    Order Buy, עבור כל גיפט אנחנו רוצים את ה-Price. סלקט עבור כל גיפט אנחנו רוצים את הניו הזה שהגדרנו פה למעלה גיפט נקודה איי-די גיפט נקודה

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

ההרצאה הקודמת: שאילתת LINQ פשוטה - מסוג Method-Like

ההרצאה הבאה: שאילתת LINQ מורכבת - מסוג Method-Like

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

  • LINQ ל- SQL
  • LINQ
  • הורדה פשוטה - Download
  • שמירת טקסט בתוך מסד נתונים - נתונים מסוג char ב-SQL

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

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