我正在尝试根据RollNumber
的最大值Datatype field
得到一行(对象)。我希望它返回一个空对象以防万一没有我使用SingleorDefault
。但似乎我的查询都是错的(这里的linq正在进行中)。
这是查询:
SchoolContextExpress db = new SchoolContextExpress();
Profile profile = db.Profiles.Where(p => p.RollNumber == db.Profiles.Max(r=>r.RollNumber)).SingleOrDefault();
感谢您阅读本文。
答案 0 :(得分:9)
使用空RollNumber ...
Profile profile = db.Profiles.Where(p => p.RollNumber !=0 && p.RollNumber == db.Profiles.Max(r=>r.RollNumber)).SingleOrDefault();
或者您可能想要考虑......
Profile profile = db.Profiles.Where(p => p.RollNumber == db.Profiles.Where(p1 => p1.RollNumber != 0).Max(r=>r.RollNumber)).SingleOrDefault();
答案 1 :(得分:3)
第一个答案旁边的另一种方法:
Profile profile = db.Profiles.OrderByDescending(p => p.RollNumber).FirstOrDefault();