
UpdateInventoryItem, שמקבלת InventoryItem.db.Entry(item).State הוא Detached, מבצעים Attach של הפריט. לא עושים Add, אלא מגדירים db.Entry(item).State ל-Modified ושומרים עם SaveChanges.GetOneInventoryItem עם ID 1. הדובר מציין שזה קצת מסוכן, כי התוצאה יכולה להיות null, אבל כאן ברור שהפריט קיים.item.Quantity את הערך 120 (הכמות הקודמת הייתה 100), וקוראים ל-Update.הטקסט המלא של הדקות הראשונות בהרצאה «עדכון רשומה קיימת במסד נתונים דוט נט - Entity Framework» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בואו נעבור לעדכון יש לנו את הסרוויס בואו ניקח את הפונקציה הזאת של add inventory item מחליף ל-update inventory item מקבלת inventory item בואו נעשה פה שוב את אותה בדיקה עם underline db entry של האייטם נקודה state שווה ל-detached רק אז אנחנו רוצים להגיע ולבצע inventory.items.attach.item בצורה כזאת.
אנחנו לא רוצים לבצע add, אנחנו רוצים להגיד לו כזה דבר: db.entry.item.state אנחנו מעבירים אותך ל-modified ושומרים את השינוי.
בואו נבדוק את הפונקציה. חזרנו לאזור של הפרוגרם. בואו נעתיק את כל זה, נדביק. אנחנו אומרים לו שאנחנו רוצים to update, updating inventory item.
איך בעצם אנחנו נשיג אייטם? בואו פשוט נעשה חיפוש רנדומלי, או שפשוט ניקח סתם איזשהו אייטם עם איי-די כלשהו. בואו נביא איזה אייטם.
אז ניגש לסרוויס, service.get1 בוא נניח שאנחנו יודעים שיש לנו ID 1 אולי, נגדיר פה סימן שאלה כמובן, נבוא ונגיד לו update, קח את אותו אייטם, מה נעשה עם הסימן שאלה הזה?
טוב, בוא נגיד שאנחנו יודעים בוודאות שיש לך אייטם כזה, למרות שקצת ריסקי, אבל נניח שיש לו אייטם כזה שם כרגע, והאמת לא שלחתי לעדכון, כן שלחתי, לא עדכנתי בכלל.
זהו, לא עדכנתי. אייטם, נקודה, קוואנטיטי.