我想通過traineeid過濾已註冊和未註冊的課程。在這裏有數據庫學員(ID,TraineeName),課程(ID,課程名稱),TraineeCourseEnrollment(TraineeID,CourseID,ENrolledDate)3表。我可以簡單地查詢已註冊的課程,但很難查詢未註冊的課程。這裏是我的代碼...過濾數據時Linq查詢異常
public IEnumerable<CourseDTO> GetCourse(string traineeid, bool isenrolled)
{
List<Course> enrolled=new List<Course>();
List<CourseDTO> course_enrolled_dtos= new List<CourseDTO>();
List<CourseDTO> course_unenrolled_dtos = new List<CourseDTO>();
IEnumerable<TraineeCourseEnrollment> enrolled_courses = db.Trainees.Find(traineeid).TraineeCourseEnrollments.ToList();
foreach (TraineeCourseEnrollment enroll in enrolled_courses)
{
course_enrolled_dtos.Add(new CourseDTO() { CourseName = enroll.Course.CourseName, ID = enroll.Course.ID });
enrolled.Add(new Course() { CourseName = enroll.Course.CourseName, ID = enroll.Course.ID });
}
if(isenrolled)
{
return course_enrolled_dtos;
}
else
{
IEnumerable<Course> unenrolled=db.Courses.Except(enrolled);
foreach (Course unenroll in unenrolled)//Exception
{
course_unenrolled_dtos.Add(new CourseDTO() { CourseName = unenroll.CourseName, ID = unenroll.ID });
}
return course_enrolled_dtos;
}
}
此代碼給人一種異常
無法創建類型的常量值「DAL_EF1.Course」。只有原始類型或枚舉類型在此上下文中受支持。
在這裏有什麼最好的方式來使用Linq擴展方法來查詢這些數據。
哪條線拋出異常? – MarcinJuraszek
foreach(課程在未註冊時取消註銷)此行出現錯誤 –