0
以下代碼有什麼問題?EntityCollection OrderBy問題
List students = new List();
students = db.Students.Where(c => c.StudentCourses.OrderBy(o => o.EnrolledTo > DateTime.Now.Date)).ToList();
我收到錯誤:委託不接受1個參數。
感謝
以下代碼有什麼問題?EntityCollection OrderBy問題
List students = new List();
students = db.Students.Where(c => c.StudentCourses.OrderBy(o => o.EnrolledTo > DateTime.Now.Date)).ToList();
我收到錯誤:委託不接受1個參數。
感謝
我猜了一下這裏,但我認爲你正在試圖從每個學生的最後日期,並將它與今天的日期。如果您使用OrderBy
來完成,您需要撥打Last
才能獲得單個值,但您應該只使用Max
。
注意:請勿在循環中使用DateTime.Now
,因爲值會更改。如果在午夜運行查詢,它可能會在循環中間發生變化,並且會得到不一致的結果。在循環之前將值放入變量中。
DateTime today = DateTime.Today;
students = db.Students
.Where(c => c.StudentCourses.Max(o => o.EnrolledTo) > today)
.ToList();
這是無意義的。你能用英語解釋你想做什麼嗎? – jason 2011-01-22 00:39:04
我希望你的lambda返回的值是可比較的(可排序的)。在這種情況下,所有的值都是真或假(除非EnrolledTo有多個值,在這種情況下,如果不使用First(),Max等,我會預期會發生異常)。你的比較似乎更適合選擇(Where,First等) – holmes 2011-01-22 02:57:38