# מערך שיעור: פרויקט מסכם — EF Core📋 מערך מרצה

הקשר: פרויקט-שיא ליחידת SQL ו-EF Core כולה (5 שיעורים קודמים) — כמו הפרויקט המסכם הקודם בקורס (Naive Bayes), זהו שיעור-אינטגרציה: לא מלמדים כלי חדש, רק מחברים.

מטרת הפרויקט: הסטודנטים יבנו פרויקט EF Core שלם — סכמה מנורמלת, SqlRepository מלא, Include נכון, ודוח Window Function אמיתי — בלי לגעת ב-Controller הקיים.

---

## דגשים להנחיה

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

---

## איך להעריך הצלחה

בדקו שה-`TasksController` המקורי לא השתנה בכלל — זו ההוכחה שכל העבודה קרתה בשכבת ה-Repository ומטה. וודאו שה-endpoint האנליטי מחזיר דירוג נכון בתוך כל קטגוריה בנפרד (לא דירוג גלובלי), ושאין שאילתות N+1 בשום שליפה שכוללת קטגוריה.

---

## טעויות נפוצות של סטודנטים

- שוכחים `Include` בשליפת הדוח וחוזרים בטעות לבעיית N+1.
- לא מעדכנים Migration אחרי הוספת ה-FK בין `Category` ל-`TaskItem`.
- נוגעים ב-`TasksController` "כדי לפשט" — מפספסים בדיוק את הנקודה של הפרויקט (הפרדת שכבות).

---

## תרגיל חשיבה

**שאלת פתיחה:** "עברתם 6 שיעורים ביחידה הזו — עיצוב DB, EF Core, SqlRepository, Queries, Window Functions, ופרויקט מסכם. איזה שיעור הרגיש הכי קשה, ולמה?"

**מהלך:** תנו לסטודנטים לשקף בקול רם — זו הזדמנות אבחונית טובה לזהות פערי הבנה לפני המעבר ליחידה הבאה (Docker), ולתת לכם כמרצים תמונה של מה שווה לחזק בשיעורי חזרה עתידיים.

**מה המרצה מראה בסוף:** עברו יחד, שיעור-שיעור, על הפרויקט המלא שנבנה — הצביעו על כל קטע קוד ומאיזה שיעור ספציפי הוא מגיע (הסכמה=שיעור 1, ה-DbContext=שיעור 2, וכו') — סיכום ויזואלי שממחיש שהפרויקט הוא לא "עוד דבר" אלא בדיוק צירוף של מה שכבר נלמד.
