שינוי DB לפי DB FIRST והגדרת 2 שדות למפתח ראשע אחד
-
בוקר טוב,
דבר ראשון אשמח אם מישהו יוכל להסביר לי איך אני שומרת שינויים ששיניתי בDB ע"פ DB FIRST
ודבר נוסף יש לי טבלה ש2 שדות בה הם המפתח הראשי שלה
יש אפשרות להגדיר את שניהם ביחד למפתח ראשי או שאני אצטרך להוסיף שדה של מספור שהוא יהיה המפתח?? -
@ממ
לשאלה הראשונה, לא אמור להיות הבדל בשמירה בין db first ל-code firstcontext.SaveChanges();
לשאלה השניה, אפשר לעשות מפתח ראשי אחד, ולהוסיף עוד שדה אינדקס
https://www.w3schools.com/sql/sql_create_index.asp#:~:text=CREATE UNIQUE INDEX Syntax -
@חגי כתב בשינוי DB לפי DB FIRST והגדרת 2 שדות למפתח ראשע אחד:
context.SaveChanges();
מריצים את זה בטרמינל?
-
@ממ כתב בשינוי DB לפי DB FIRST והגדרת 2 שדות למפתח ראשע אחד:
שיתעדכן
שיתעדכן מה?
המבנה? או הנתונים?אם זה המבנה,
Scaffold-DbContext "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
או בCLI
dotnet ef dbcontext scaffold "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -f
לא לשכוח לשנות את מחרוזת החיבור!
ושימו לב שזה ידרוס את השינויים המותאמים אישית אם עשיתם
במידה ועושים שינויים מותאמים אישית לקוד, מומלץ לשים אותם ב partial class במיקום אחר ואז זה ישתקף שם.
אפשר גם לבצע MetaData על פרופרטי קיימים -
@clickone אוקי, תודה!!
ולגבי השאלה השנייה שלי
יש לי 2 טבלאות:
טבלת סטודנט וטבלת קורס
לכל סטודנט יכול להיות כמה קורסים
וכל קורס יכול להיות של כמה סטודנטים
איך אני מגדירה תמפתחות בטבלה של הקורס
כי הרי כל מפתח מורכב מת.ז. של סטודנט ומס קורס -
@ממ
עושים טבלה שלישית, שמכילה מזהה רץ, מזהה סטודנט, מזהה קורס
אפשר לשים אילוץ אינדקס שלא יהיו כפילויות של מזהה סטודנט + מזהה קורס אותו דבר
והמפתח הראשי של הטבלה יישאר המזהה רץ.ניתן כמובן לעשות רק 2 שדות, של מזהה סטודנט + מזהה קורס, וששניהם יהיו המפתח הראשי.
אני אישית לא אוהב את זה ככה, וזה עניין של טעם ונוחות פיתוח ותחזוק.כמובן ייתכן שתרצו לעשות עמודות נוספות בטבלה שלישית זו, כמו סכום לתשלום, או האם שולם וכו'
נ.ב. אם תוכלו בבקשה לפתוח אשכול נפרד לכל שאלה, זה יותר נח ככה לכולם
6/9