
הטקסט המלא של הדקות הראשונות בהרצאה «WebAPI - C-SHARP» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב חברים, בואו נעשה את החלק האחרון של שמירה בתוך C-Sharp לדאטאבייס אז איך אנחנו נשמור את זה? קודם כל צריך לעצור את הפרויקט ואנחנו רוצים לפתוח את המודל 2 הזה, שכל הטבלאות ויש בפנים ככה את הקונטקסט ואת הקלאסים של C-Sharp
ואני צריך את הקונטקסט שלו, שקראתי לו North Entities 2 כנראה ועכשיו נעשה אובייקט חדש, נקרא לו DB2, יופי ואנחנו רוצים להתחיל לשמור את הנתונים. נתחיל לשמור את ה-client db2.customers בטבלת ה-customers.
שימו לב, זה הכל כמו אובייקטים עובד. אתם רואים, הוא הפך לי כל הטבלה לאובייקטים וכל שורה בפנים זה גם אובייקט. customers, וב-customers אנחנו רוצים לעשות add ולהוסיף לקוח שהוא בעצם הגיע לנו בפוסט פראמס.
פוסט פראמס נקודה קליינט פוסט פראמס נקודה קליינט איך אני יודע איזה סוג נתונים זה תסתכלו אני לוחץ פה F12 ואני רואה שהקליינט הוא מאותו סוג קסטומר אז אין לי בעיה להוסיף אותו אז אני מוסיף אותו לאוסף רק יש משהו קטן שיש פה בעיה שהשדה של ה-ID שלו תכף אני אראה לכם הוא לא מיוצר אוטומט זאת אומרת שבקסטומרס זה משהו יחסית נדיר לדעתי
אבל הם עשו שבקאסטמרס דיזיין, תסתכלו, השדה של איי-די שלו, שזה שדה חובה כי הוא מפתח ראשי, הוא מסוג n-car 5, כאילו 5 אותיות או מספרים, ואין לו אדנטיטי. אדנטיטי זה אומר שהוא סופר לבד 1, 2, 3, ברור שהוא לא סופר 1, 2, 3, כי זה לא מספר, זה אותיות.
אז אני צריך להמציא איזשהו מזהה בעצמי, אחרת לא ייתן לי לעשות אותו, כי אין לי פה מזהה. אז האמת שאני לא יודע מה לעשות, איך אני מציל לו את המזהה שלו, אז בוא נעשה איזשהו רנדום, נקרא לזה RND, אובייקט של רנדום ופשוט נעשה שpost params client.customerid שווה random.next שיעשה לי איזשהו מספר שממנו מתחילים, נניח נתחיל ממספר 100 ועד מספר,
לא יודע מה, 99,000. סתם אני מגריל מספר אקראי וזה המספר שהולך להיות בעצם המזהה של הזה מה הוא רוצה סטרינג אה אני צריך פה אותו סטרינג לעשות לו אוקיי לקחתי עשיתי מספר ואני מקווה שהוא לא יחזור על עצמו במקרים כאלו באמצעיות הייתי מחזיר לפרודקט מנאג'ר בקשה שישנה לי את האפיון
שכי האפיון הוא דפוק בקיצור יש פה סיכוי קטן שיצא ברנדומלי אותו מספר וההזמנה לא תיקלט ואז יצטרכו לעשות עוד פעם סייב ואז בפעם השנייה בטח יצא איזה מספר אחר טוב טוב שמרנו באוסף של customers את הלקוח החדש, עכשיו אנחנו רוצים לעשות הזמנה חדשה, לשמור הזמנה חדשה בוא נעשה אובייקט שנקרא order מסוג order נקרא לו new
order והוא באמת יהיה אובייקט חדש מסוג ההזמנה ובאובייקט הזה אנחנו צריכים לשייך אותו new order אנחנו צריכים לשייך אותו לcustomer שלנו זאת אומרת לשייך בין ההזמנה ללקוח אז אני אומר תקשיב ההזמנה החדשה מצביעה על אובייקט של ה-Customer הקודם, אוקיי?
קחו ב-Identity Framework, שימו לב, עשיתי Customer. עכשיו אני עושה Order, ובתוך ה-Order יש לי פה מזהה שמחבר את זה לכאן.
אז פה אני מחבר אותו, ואחרי זה אני אגיד ב-Order Details, אני אכניס פה את ה-Order הזה. יפה מאוד. אתם רואים, ה-Customer, זה מחובר לכאן.
בטמלה הזאת של Orders, אם אנחנו נסתכל עליה, אורדר איידי הוא מסוג אינט שזה מספר ויש פה אדנטיטי זה אומר שהוא סופר לבד 1, 2, 3 אוטומטית אז אנחנו רק שייכנו ומוסיפים אותו לאוסף של דאטאבייס את האובייקט החדש שיצרנו לטבלת orders add new order זאת אומרת יצרנו אובייקט חדש של ההזמנה עשינו לו
הצבעה ללקוח קיים זאת אומרת כי יש קשר הזמנה עבור איזה לקוח ושייכנו אותו חיברנו את האובייקט החדש לאוסף של כל ההזמנה יפה מאוד.
עכשיו נשאר לנו רק לטפל ב-Order Details. מה יש לנו ב-Order Details? אם נסתכל כאן, ב-Order Details יש לנו שיוך ל-Order. אתם רואים? שיוך ל-Order, וזה מה שאנחנו הולכים לעשות.
אז אנחנו רוצים לעבור על כל Order Details, כי זה List, זאת רשימה, ולעשות לולאה שעוברת על כל אחד. זה כמו לולאה רגילה של For, אבל יש לנו את ה-For each, ואנחנו אומרים ככה: עבור כל אובייקציה, לא יודע מה עבור כל הזמנה, בואו נעשה לו עבור כל x, עבור כל אובייקט.
תעשה לי כזה דבר שהאורדר שלו, שהמאפיין שלו אורדר, יצביע על אובייקט New Order. למעשה אנחנו משייכים בין Order Details, בין פירוט של ההזמנה, לאובייקט הראשי של ההזמנה.
ככה נכנס בעצם Order ID בתוך Order Details. בואו תראו, בטבלה של Order Details יש לנו פה עמודה של Order ID. ב-Order ID בעצם המערכת תיקח את זה מתוך האובייקט אורדר שהוא משוייך אליו.
Product ID יש לנו, Quantity אין לנו, כמות אין לי, שכחתי כמות. בואו נכניס לו גם כמות. נגיד לו תעבור על כל הפרטים של בהזמנה, ועבור כל הפרטים בהזמנה תכניס לו אחד.
זה בעצם לולאה רגילה. עוד לא עשינו מקום במסך הגרפי לעבור על להכניס כמות. אז בעצם אנחנו עוברים פה על כל רשימת הקניות שלנו, ועבור כל פריט משייכים לו Order ID.
ההזמנה למעשה אנחנו משייכים אובייקט של ההזמנה ובתוך האובייקט של ההזמנה יהיה גם orderid את המספר הסידורי שלה שהוא ייצר לבד עכשיו תשאלו אותי מתי הוא מייצר לבד ברגע שאני שומר את זה בדאטה בסקי רק השרת יודע לספור לי את הorderid אז בוא נעשה db2.orderdetails.addrange כי אני רוצה טווח אין לי אחד יש לי כבר אתם
רואים יש לי כבר כאילו array ואני משייך לו את כל המערך של order details אז עברתי על המערך של order details ועבור כל אחד שייכתי לו הזמנה שייכתי לו כמות והוספתי אותו למה שקורה אצלי בדאטאבייס אבל שימו לב כל הדאטאבייס הזה קיים בזיכרון של שרת web בלבד רק כשאני עושה save
changes זה נשלח לשרת sql רק פה save to sql ואחרי שזה נשמר בsql אני