PracticU

שאילתת LINQ מורכבת
מסוג SQL-Like

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

שאילתת LINQ מורכבת מסוג SQL-Like
אותה שאילתת join מורכבת, הפעם בתחביר SQL-Like, שבו הקוד קצר וברור הרבה יותר.
השלבים העיקריים
1. שני האוספים: from gift in db.Gifts ואחריו join hGroup in db.HGroups. השמות gift ו-hGroup זמינים בכל המשך השאילתה.
2. תנאי ה-join: on gift.HGroupId equals hGroup.Id. כאן משתמשים ב-equals ולא ב-==. השאילתה לא צריכה את האובייקט המאחד (joined) מהשיטה הקודמת, ולכן נחסך קוד.
3. סינון: where gift.Price >= 10 && gift.Price <= 40. אפשר להוסיף גם תנאי על עמודה של hGroup, כמו גיל מינימום.
4. מיון: orderby gift.Price descending, gift.Name, כאשר מיון משני מופרד בפסיק. ascending אינו חובה.
5. בחירה: select new עם GiftId = gift.Id, GiftName = gift.Name, Price = gift.Price ו-HGroup = hGroup.Name.
6. הרצה: query.ToList() ניגש למסד הנתונים ומחזיר את התוצאה הסופית.
התוצאה זהה לשאילתת Method-Like: אותן שלוש רשומות.
אחרי ההרצאה תוכלו לכתוב join, סינון ומיון משני בתחביר SQL-Like של LINQ.
השיעור הבא בקורס: שאילתת LINQ על אוספים רגילים

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

  1. 00:00

    יתרון תחביר SQL-Like

  2. 00:37

    כתיבת join בתחביר SQL-Like

  3. 01:17

    הגדרת ה-on והסינון

  4. 01:58

    מיון ובחירת אובייקט

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

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

  1. 00:02

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

  2. 00:24

    בואו נשנה את זה למספר 5. זאת השאילתה, שימו לב מה אנחנו עושים. var query, זה ברור, אנחנו לא מקבלים את התוצאה הסופית, אלא query ואז על ידי toList הופכים אותה לתוצאה הסופית.

  3. 00:37

    שווה from gift in db.gifts. join h group in db.h groups. בינתיים ראינו שאנחנו אומרים לו שזה ה-collection הראשון, זה ה-collection השני.

  4. 00:53

    gift זאת המילה הזאת שנמצאת פה, שאנחנו מתעסקים איתה בכל מקום. h group זאת המילה הזאת שנמצאת פה, כשאנחנו מתעסקים איתה בכל מקום אנחנו אפילו לא נצטרך את האובייקט ג'וינד הזה שזה מה שהביא לנו אותו אז חסכנו כבר קוד ומורכבות on אנחנו ממש דומים לשפת sql הנה ה-on אז ה-on הוא gift.hgroupid == אנחנו בעצם לא משתמשים בשווה במקרה הזה hgroup.id הנה יש לנו את

  5. 01:31

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

  6. 01:52

    יכלנו לעשות פה שוב אינד אייג' גרופ נקודה בוא נניח מינימום אייג' גדול מ-10 כמו שהראתי מקודם אנחנו לא מתעסקים איתו בשאילתא. הספציפית הזאת אבל זה ניתן בקלות order by גיפט נקודה פרייס ואני פשוט מוסיף את המילה descending שימו לב כל דבר יש לי מילה שמורה בשפת c-sharp אם אני רוצה מיון משני זה פשוט פסיק גיפט נקודה name אני יכול לרשום הסנדינג

  7. 02:17

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

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

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

ההרצאה הבאה: שאילתת LINQ - על אוספים רגילים

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

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

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

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