PracticU

שימוש ב-View
Entity Framework

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › שימוש ב-View Entity Framework
מילון מושגים:
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
Entity Framework - ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
מפתח ראשי - עמודה או צירוף עמודות שמזהים באופן ייחודי כל שורה בטבלת מסד נתונים.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
Namespace - מרחב שמות שמקבץ שמות של טיפוסים ורכיבים ומונע התנגשות בין שמות זהים בחלקים שונים של הקוד.
מודל - רכיב שמייצג את הנתונים ואת הלוגיקה העסקית באפליקציה. גם ייצוג מופשט של מערכת או תהליך.

שימוש ב-View Entity Framework
אחרי שה-View קיים במסד, מביאים אותו לפרויקט בעזרת scaffolding ומשתמשים בו דרך ה-Service. כך מקבלים רק פריטים שנמצאים במלאי, בלי לכתוב שאילתה באפליקציה.
השלבים העיקריים
1. Scaffolding מחדש: ב-Package Manager Console חוזרים לפקודה האחרונה ומריצים אותה. נוצרת מחלקה InStockInventoryItem, מחלקה partial שמסומנת כ-keyless, כי ל-View אין מפתח ראשי גם אם יש בו עמודת ID. בה יש BrandName, TypeName ו-Quantity בדיוק כמו ב-View.
2. ה-Context: נוצר DbSet ברבים בשם InStockInventoryItems, וכן מיפוי בין האוסף ל-View.
3. מתודה ב-Service: ב-InventoryItemsService מוסיפים GetInStockInventoryItems, שמחזירה InStockInventoryItems.ToList(). ה-View כבר עושה את כל העבודה, ולכן הקוד פשוט.
4. הצגה בתוכנית: מתודה DisplayInStockInventoryItems מקבלת את הרשימה ומדפיסה כל פריט ב-foreach. בהרצה הראשונה מודפסים רק שמות המחלקה וה-namespace, כי אין ToString.
5. הרחבה ב-Extensions: לא כותבים את ToString במחלקה שנוצרה, כי ה-scaffolding הבא ידרוס אותה. משכפלים את המחלקה לתיקיית Extensions, מסירים את התוכן (גם את keyless) וכותבים override ToString שמחזיר את ה-ID, BrandName, TypeName ו-Quantity. אין צורך לבדוק כמות אפס כי ה-View מחזיר רק פריטים במלאי.
6. בדיקה: בהרצה רואים רק פריטים במלאי עם המותג, הסוג והכמות.
אפשר עכשיו ליצור View במסד, לייצר ממנו מודל ב-scaffolding ולהשתמש בו בפרויקט, כשהקוד שלכם יושב ב-Extensions ולא נדרס.

פרקי ההרצאה: שימוש ב-View Entity Framework

  1. 00:00

    יצירת מודל ה-View עם Scaffolding

  2. 00:38

    מיפוי ה-Collection ל-View בקונטקסט

  3. 01:13

    פונקציית Get In Stock בסרוויס

  4. 01:53

    שימוש ב-View והצגת הפריטים

תמלול ההרצאה: שימוש ב-View Entity Framework

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

  1. 00:02

    אז איך אנחנו משתמשים ב-View מתוך הפרויקט? פשוט מאוד על ידי Scaffolding Package Manager Console חץ למעלה מחזיר לנו את הפקודה האחרונה Enter המערכת מייצרת את כל הדאטאבייס מחדש ואם אנחנו מסתכלים אנחנו רואים שנוצר לנו In-Stock Inventory Item המערכת פשוט קראה את ה-View כי הוא חלק מהדאטאבייס יצרה לנו

  2. 00:29

    partial class שמה לנו key לסקווה יודעת שאין פה מפתח ראשי ואפילו שיש לי פה סוג של ID זה עדיין לא מפתח ראשי, הנה ה-Brand Name בדיוק כמו שמוגדר ב-Database, Type Name כמו שמוגדר ב-Database, Quantity.

  3. 00:43

    הדבר הבא שהמערכת אוטומטית עשתה, אם אנחנו מסתכלים על ה-Context אנחנו יכולים לראות שיש לנו פה את ה-In-Stock Inventory Items ברבים, Collection, מגניב.

  4. 00:56

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

  5. 01:15

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

  6. 01:30

    אייטם get in stock inventory items תביא לי רק את הפריטים שקיימים במלאי דרך ה-view. return יש לנו כאן את ה-collection in stock inventory items to list שימו לב כמה זה פשוט כי ה-view בדאטאבייס כבר עושה את כל העבודה אז אני רק קורא לו ומחזיר את המידע.

  7. 01:53

    בואו ניגש ונשתמש בו בפרוגרם נרד פה למטה ניקח איזה פונקציה דומה למה שכבר עשינו, נגדיר כאן display in-stock inventory items, in-stock inventory items, יש לנו את הקונטקסט, אנחנו רוצים לקבל ממנו list in-stock inventory item, service.get-in-stock, מעולה, קיבלנו.

  8. 02:24

    בואו נציג הכל. אז יש לנו for each in-stock inventory item של items ואנחנו רוצים להציג אותו. אז בואו בשלב הזה כבר נציג רק את ה-item עצמו בצורה כזאת בלי להיכנס יותר מדי לפרטים וזה כמובן לא באמת יעבוד ויציג לנו רק את השמות של ה-class כי אין לו באמת to-string.

  9. 02:54

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

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

ההרצאה הקודמת: יצירת View במסד הנתונים - Entity Framework Core

ההרצאה הבאה: יצירה ושימוש ב-Stored Procedure - לעדכון נתונים EF - Entity Framework

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

  • שימוש ב-Entity Framework - חלק 1
  • שימוש ב-View לשיפור Security
  • Debug View
  • View Group

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

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