我正在尝试从实体中检索数据并填充viewModel属性,如下所示:
viewModel.Enrollments = db.Enrollments.Where(b => b.classDays == "Monday") && (db.Enrollments.Where(b => b.CourseID == courseID);
但我得到一个运算符&&
不能应用于System.Linq.IQerable<>
类型错误的操作数。您能帮忙找到具有相同ID的所有星期一课程吗?
我试过这个:viewModel.Enrollments = db.Enrollments.Where(b => b.classDays == "Monday")
但我得到了所有周一课程,但我想将它们限制在特定的课程ID。
请帮忙!
答案 0 :(得分:3)
您需要检查括号。这段代码甚至不会编译:
viewModel.Enrollments = db.Enrollments.Where(b => b.classDays == "Monday")
&& (db.Enrollments.Where(b => b.CourseID == courseID);
在该代码中,您尝试在两次&&
调用之间使用.Where()
,这两次调用都返回IQueryable
。你可能想在<{em} {/ 1>}子句中使用&&
:
.Where()
或者可能附加第二个viewModel.Enrollments = db.Enrollments.Where(b => (b.classDays == "Monday")
&& (b.CourseID == courseID));
条款:
.Where()
请注意,viewModel.Enrollments = db.Enrollments.Where(b => b.classDays == "Monday")
.Where(b => b.CourseID == courseID);
可以无限链接,实际上导致在生成的查询中以.Where()
方式依次应用每个子句。
答案 1 :(得分:0)
&安培;&安培;运营商应该使用条件里面没有注册的人(在你的情况下)
试试这个:
viewModel.Enrollments = db.Enrollments.Where(b => (b.classDays == "Monday") && (b.CourseID == courseID));