Более конкретно, см. Код ниже, я хочу, чтобы он ВСЕГДА возвращал QuestionName и NodeID (они всегда будут существовать вместе), но когда нет QuestionTracking, я хочу, чтобы он сказал «Не предпринято». Однако до сих пор я получаю результаты только из этого запроса, если есть отслеживание вопроса. Как я могу получить "Not Attempted" в этой строке, если и когда нет данных о левом соединении?
public IQueryable<QuestionSummary> GetFullCourseQuestions(int CourseID, int RevisionID, int UserID)
{
return (from n in db.CourseNodes
join a in db.Assets on n.AssetID equals a.AssetID
join q in db.Questions on a.AssetID equals q.AssetID
join qt in db.QuestionTrackings on q.QuestionID equals qt.QuestionID into qu
where n.CourseID == CourseID && n.CourseRevisionID == RevisionID
from qtu in qu.DefaultIfEmpty()
where qtu.UserID == UserID
select new QuestionSummary
{
QuestionText = q.QuestionName,
NodeID = n.CourseNodeID,
AnswerStatus = (qtu.IsCorrect == null) ? "Not Attempted" : (qtu.IsCorrect) ? "Correct" : "Incorrect"
});
}