【发布时间】:2020-06-04 18:10:30
【问题描述】:
var sched = db.Class_Schedule.Select(p=>p.ClassID);
var classStudents = db.Students.Where(p => p.Enrollments.Select(q=>q.ClassID).Equals(sched));
return View(classStudents.ToList());
我正在尝试通过注册表检查学生的ClassID,看看它是否与Class_Schedule 表的ClassID 匹配。
这是我得到的例外:
'System.NotSupportedException: '无法比较'System.Collections.Generic.IEnumerable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 类型的元素。仅支持原始类型、枚举类型和实体类型。''
【问题讨论】:
-
类似于TSQL语法。您想使用
Where进行过滤,并使用Select实际指定要检索的内容(如果它与实体类型不同)。您还可以使用Join跨表连接。至于您实际上要做什么,我不确定,因为您提到了Student(单数),但是您在陈述中没有使用学生ID或学生实例。
标签: c# sql .net model-view-controller