
ToString ושם מלא.get בלבד שמחזיר אם Price שווה 0, ולא פונקציה.[NotMapped], כדי שמיגרציה או update database לא יוסיפו לו עמודה. אפשר להסתדר גם בלי זה כי אין set, אבל כדאי להגדיר כדי שיהיה ברור שזו לוגיקה ולא נתון בדאטה בייס.ToString כך שיחזיר שם פרטי, שם משפחה ואימייל. כך אפשר להציג את האובייקט בכל מקום, ושליחה שלו להדפסה קוראת ל-ToString אוטומטית.FullName שמחזיר את השם הפרטי, רווח ושם המשפחה. גם כאן משתמשים ב-[NotMapped], ואין צורך בו מעל פונקציות.PrintAllCustomers שמקבלת את כל הלקוחות ובלולאה foreach שולחת כל אחד להדפסה. המרצה מציין שזה לא משהו שכדאי לעשות בשירות, אלא רק לצורך הדוגמה.הטקסט המלא של הדקות הראשונות בהרצאה «הוספת לוגיקה במחלקות Model» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
לפעמים אנחנו רוצים להוסיף לוגיקה למחלקות של המודל עצמן. כאשר הלוגיקה היא מאוד פשוטה ויכול להיות שזה משהו שישרת אותנו, אולי כדאי להוסיף פונקציות קטנות או פעילויות קטנות למחלקות הלוגיקה השונות.
בוא נניח שבגיפט אנחנו רוצים הרבה פעמים במערכת, באפליקציה, לדעת האם המתנה היא ניתנת בחינם. יכול להיות שיש מתנות שמחלקים אותן בחינם.
מה זה אומר מתנה שהיא חינמית? המחיר שלה שווה 0. פחות מ-0 בטוח הוא לא יכול להיות, אבל שווה 0 יכול להיות. אז במקום שאת הבדיקה הזאת נעשה בחוץ בכל מיני מקומות, אנחנו יכולים לבוא לפה ולהוסיף עוד מאפיין, פרופרטי, כי זה סך הכל ערך בוליאני בודד, אני לא צריך
בשביל זה פונקציה. ואנחנו רוצים להגדיר ערך בוליאני, בוליאן is free. בעצם נמצאים בפרופרטי שאנחנו רוצים שיהיה פה רק גט ואנחנו רוצים להחזיר פשוט האם הפרייס שווה 0. אם הפרייס שלנו 0 אז המתנה היא נחשבת free, is free gift נקרא לזה אבל בכדי למנוע מצב בו המערכת תחשוב שאנחנו רוצים בדטאבייס
שדה כזה כשאנחנו מבצעים מיגריישן או Update Database כדאי להגדיר כאן not mapped. זאת אומרת המערכת אומרת שבו זה איזשהו מאפיין, אין קשר בינו לבין הדאטאבייס, הוא עושה איזושהי פעילות ברמת האפליקציה, לא קשור לדאטאבייס.
יכול להיות שגם בלי להגדיר את המאפיין הזה לא יישמר בדאטאבייס מידע, כי אנחנו רק גט ולא סט, אבל עדיין כדאי להגדיר את זה. מי שמסתכל על זה יודע שאנחנו רק לוגיקה ולא משהו שקשור לדאטאבייס.
הרבה פעמים קורה שיש לנו אובייקט מסוים נניח אובייקט לקוח ואנחנו רוצים להשתמש בו כייצוג מכרוזתי אולי להציג אותו אולי לשמור אותו לקובץ אולי לשלוח אותו באימייל אז הרבה פעמים אנחנו רוצים לבנות פונקציה שנקראת two string אנחנו בעצם דורסים אותה ומחזירים