שאלה לגבי join ב-linq
היי לכולם. אני מנסה לעשות משהו ולא כל כך מצליח לי.
יש לי 2 טבלאות במסד נתונים.
אחת נקראת projects שיש בה כמה פרמטרים, ומפתח ראשי projectId.
וטבלה שניה שנקראת photos שגם בה יש כמה שדות. אבל השדות החשובים הם projectId שמקושר ל project.projectid ושדה שנקרא mainPhoto.
לכל פרויקט יש כמה תמונות. אבל כשאני מציג תקציר של הפרויקט אני רוצה שיראו רק את ה-mainPhoto. אני משתמש בlinq כדי למשוך נתונים. אבל פרויקטים שאין להם תמונות, או שאין להם תמונות שמוגדרות כmainPhoto לא מוצגים בכלל. אודה לעזרתכם בפתירה של הבעיה. אני מצטרף את השאילתא שכתבתי
וזו אפשרות שניה שניסיתי
בשני המקרים חוזר לי רק פרויקט שיש לו תמונות בטבלת תמונות שמקושרות אליו ופחות אחת מהן היא mainPhoto.
אודה לעזתרכם. תודה
היי לכולם. אני מנסה לעשות משהו ולא כל כך מצליח לי.
יש לי 2 טבלאות במסד נתונים.
אחת נקראת projects שיש בה כמה פרמטרים, ומפתח ראשי projectId.
וטבלה שניה שנקראת photos שגם בה יש כמה שדות. אבל השדות החשובים הם projectId שמקושר ל project.projectid ושדה שנקרא mainPhoto.
לכל פרויקט יש כמה תמונות. אבל כשאני מציג תקציר של הפרויקט אני רוצה שיראו רק את ה-mainPhoto. אני משתמש בlinq כדי למשוך נתונים. אבל פרויקטים שאין להם תמונות, או שאין להם תמונות שמוגדרות כmainPhoto לא מוצגים בכלל. אודה לעזרתכם בפתירה של הבעיה. אני מצטרף את השאילתא שכתבתי
קוד:
var projects = from pro in db.Projects
join photo in db.Photos
on pro.projectId equals photo.projectId into photosGroup
from photo2 in photosGroup
where photo2.mainPhoto == true
orderby pro.projectId descending
select new
{
projectId = pro.projectId,
projectName = pro.projectName,
shortDescription = pro.shortDescription.Replace("\n", "<br/>"),
fileName = photo2.fileName,
description = photo2.description
};
קוד:
var projects = from pro in db.Projects
join photo in db.Photos
on pro.projectId equals photo.projectId
where photo.mainPhoto == true
orderby pro.projectId descending
select new
{
projectId = pro.projectId,
projectName = pro.projectName,
shortDescription = pro.shortDescription.Replace("\n", "<br/>"),
fileName = photo.fileName,
description = photo.description
};
אודה לעזתרכם. תודה