私が抱えているのと同じ問題であるこの質問を読みました。残念ながら、マークされた解決策は役に立ちませんでした。私はおそらく、LINQ について本当に明白なことを誤解しています。
私はある種の逆引きをしようとしています。学生が登録しているすべてのコースを見つける必要があります。
これがコードです...
public static IQueryable GetCoursesByStudent(string sStudentId)
{
Ld_Sql_ServerDataContext ld_SqlContext = new Ld_Sql_ServerDataContext();
// course-lesson IDs
var activityEnrollmentIds = from ce in ld_SqlContext.YT_STUDENT_COURSE_ENROLLMENT_STATUS
where ce.STUDENT_EMPLOYEE_ID_NR.ToLower() == sStudentId.ToLower()
select ce.TRAINING_ACTIVITY_ID;
// lesson parent course IDs
var parentIds = from c in ld_SqlContext.YT_TRAINING_COMPONENT_RLTNPs
where activityEnrollmentIds.Contains(c.TRAINING_ACTIVITY_ID)
select c.PARENT_TRAINING_ACTIVITY_ID;
// filtered list of courses
var courses = from c in ld_SqlContext.YT_TRAINING_COMPONENTs
where c.TRAINING_ACTIVITY_TYPE_DC == "Course" &&
(activityEnrollmentIds.ToList().Contains(c.TRAINING_ACTIVITY_ID)
|| parentIds.ToList().Contains(c.TRAINING_ACTIVITY_ID))
select c;
return courses;
}
結果を ASP:ListBox にデータバインドしていますが、DataBind() で次のエラーがスローされます...
System.NotSupportedException: ローカル コレクションを使用したクエリはサポートされていません。
何が起こっているか知っている人はいますか?