我正在尝试根据RollNumber的最大值获取一行(对象),这是一个很长的Datatype field。我希望它返回一个空对象,以防没有这样的对象,所以我使用了SingleorDefault。但似乎我的查询完全错误(这里正在处理linq)。
以下是查询:

SchoolContextExpress db = new SchoolContextExpress();
        Profile profile = db.Profiles.Where(p => p.RollNumber == db.Profiles.Max(r=>r.RollNumber)).SingleOrDefault();

谢谢你看这个。

最佳答案

使用空的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();

09-17 00:27