Выберите полную строку столбца с максимальным значением

#linq #linq-to-sql

#linq #linq-to-sql

Вопрос:

Ситуация такова, что у меня есть таблица, в которой есть, например, 10 строк. Я хочу вычислить значение столбца «цена» и хочу выбрать полную строку, которая имеет МАКСИМАЛЬНУЮ цену.

 var offer = (from p in dc.CustomerOffer
                                 join q in dc.OffersInBranch
                                     on p.ID equals q.OfferID
                                 where q.BranchID == singleLoc.ID
                                 select (p.OriginalPrice - p.NewPrice) * 100 / p.OriginalPrice).Max();
  

Приведенный выше код дает мне только МАКСИМАЛЬНУЮ цену, как бы я выбрал всю строку.
Есть идеи, ребята??

Ответ №1:

Попробуйте следующий код :

 var offer = (from p in dc.CustomerOffer
                                 join q in dc.OffersInBranch
                                     on p.ID equals q.OfferID
                                 where q.BranchID == singleLoc.ID
            let value = (p.OriginalPrice - p.NewPrice) * 100 / p.OriginalPrice
            order by value desc
                                 select p).First()
  

Примечание: Это фиктивный код, и он может быть синтаксически некорректным. Возможно, вам придется настроить запрос в соответствии с вашими требованиями.