בניית הקשרים בDB

רואי2911

New member
בניית הקשרים בDB

שלום רב,
קראתי הרבה מאמרים בנושא EntityFrameWork (כמובן גם סרטונים).
יש לי בעיה מהותית שאני לא מצליח לפתור. אשמח אם תעזרו לי בבקשה.
כשאני מנסה לשלב דאטה בייס קיים בפרוייקט שלי - בנית דאטה בייס תחילה (עם כל הקשריו) (database First)
ולאחר מכן משיכתו דרך הקוד (edmx) אני נתקל בתופעה שכלל לא מובנית לי.
כל ההקשרים בין המחלקות הופכים להיות באופן דיפולטי יחיד לרבים. למרות שהסכמה המקורית בSQL-SERVER בעלת הקשרים , כשאני מנסה למשוך אותה לפרוייקט שלי .התלויות לא נשמרות.
אשמח לשמוע מהי הדרך הטובה ביותר לעשות זאת, ואיך אני יכול לשמור על ההקשרים בין המחלקות ( יחיד ליחיד- רבים לרבים.. וכו'..)
בעיה נוספת שנתקלתי בה היא שאין אזכור בדיאגרמת הDB למחלקת הקשר (שנובעת מהקשר של רבים לרבים).
קראתי שאם המפתח מורכב אך ורק מצירוף של שני המפתחות משתי הטבלאות שיצרו אותו אז לא יהיה אזכור לטבלה, אבל טבלה זו מכילה גם שדות ספציפיים אליה - למעט מפתחות.
מהי הדרך הטובה ביותר לפתור בעיה זו?
תודה , רואי.
 

ziv1f

New member
בטבלה המקשרת תשים שדה ID-autoincrement שיהיה המפתח הראשי

זה יפתור לך את בעיית היעלמות הטבלה המקשרת
וכמובן שים אינדקס ייחודי על ההצלבה של שני המפתחות הזרים ע"מ למנוע כפילויות

את שאר השאלה לא בטוח שהבנתי

בברכה,
זיו
 
לגבי "היעלמות" הטבלה המקשרת,

זה בכוונה. וכפי שזיו ציין, זה קורה רק אם בטבלה שלך יש שני שדות - המפתחות של שתי הטבלאות האחרות. תוסיף שדה - הפיצ'ר הזה נעלם. (והטבלה תופיע בדיאגרמה)
היתרון הוא שאתה עובד רק עם ישויות חשובות ואמיתיות. למשל אתה מוסיף role to user , ובכלל לא מעניין אותך שבעצם יש שם עוד טבלה. היא מוסתרת ממך, וזה מאד נוח. בפועל כמובן תתוסף שורה לטבלת הקישור בכל פעולה של הוספה.
 
למעלה