Как выбрать строку (объект) по максимуму поля Entity Framework 4.1 - PullRequest
7 голосов
/ 29 февраля 2012

я пытаюсь получить строку (объект) на основе максимального значения RollNumber, которое является длинным Datatype field. Я ожидаю, что он вернет нулевой объект, если его нет, поэтому я использовал SingleorDefault. Но кажется, что мой запрос все не так (работа над linq здесь). вот запрос:

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

спасибо за чтение.

Ответы [ 2 ]

9 голосов
/ 29 февраля 2012

Для работы с пустым 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();
3 голосов
/ 28 декабря 2017

Другой способ сделать, кроме первого ответа:

Profile profile = db.Profiles.OrderByDescending(p => p.RollNumber).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...