0

我正在尝试从实体中检索数据并填充 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")但我得到了所有星期一的课程,但我想将它们限制为特定的 courseID。

请帮忙!

4

2 回答 2

3

你需要检查你的括号。这段代码甚至不会编译:

viewModel.Enrollments = db.Enrollments.Where(b => b.classDays == "Monday")
                    && (db.Enrollments.Where(b => b.CourseID == courseID);

在该代码中,您尝试&&在两次调用之间使用.Where(),这将返回一个IQueryable. 您可能的意思是在&& 子句.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()可以无限链接,本质上导致在AND结果查询中依次应用每个子句。

于 2012-06-25T03:48:56.200 回答
0

&& 运算符应与其中的条件一起使用,而不是与注册集一起使用(在您的情况下)

尝试这个:

viewModel.Enrollments = db.Enrollments.Where(b => (b.classDays == "Monday") && (b.CourseID == courseID));
于 2012-06-25T03:52:00.190 回答