以下代码有什么问题?
列出学生=新名单();
students = db.Students.Where(c => c.StudentCourses.OrderBy(o => o.EnrolledTo > DateTime.Now.Date)).ToList();
我收到错误:委托不接受1个参数。
由于
答案 0 :(得分:1)
我在这里猜一点,但我认为你正试图从每个学生那里得到最新的日期并将其与今天的日期进行比较。如果您使用OrderBy
执行此操作,则需要Last
调用才能获得单个值,但您应该只使用Max
。
注意:不要在循环中使用DateTime.Now
,因为值会发生变化。如果您在午夜运行查询,它可能会在循环中间发生更改,并且您会得到不一致的结果。将值放在循环之前的变量中。
DateTime today = DateTime.Today;
students = db.Students
.Where(c => c.StudentCourses.Max(o => o.EnrolledTo) > today)
.ToList();