LINQ Query, возвращает максимальное значение с предложением Where - PullRequest
0 голосов
/ 24 марта 2020

Я работаю над API; как настроить мой запрос linq на возврат максимального значения с условием where?

См. пример кода ниже; Я могу вернуть максимальное значение поля, которое я хочу, но мне нужно отфильтровать его, если значение другого столбца равно чему-либо.

var lot = db.ShrinkLotData.Where(x => x.SupplierMfgLot.ToLower() == label.SupplierMfgLot.ToLower() && x.CatPattern.ToLower() == label.CatPattern.ToLower())
                    .SingleOrDefaultAsync();

    if (lot.Result == null)
    {
        var lots = db.ShrinkLotData.Where(x => x.CatPattern.ToLower() == label.CatPattern.ToLower());

        int internallot = db.ShrinkLotData.Max(x => x.InternalLotNum).Value;

        return Ok(lot);
    }

    return Ok(lot);
}

для внутреннего слота, я хочу вернуть самое высокое значение, используя синтаксис, аналогичный синтаксис лотов .. (где catpattern равен указанному c значению)

Что я пропускаю?

Спасибо!

1 Ответ

0 голосов
/ 25 марта 2020

Если я правильно понимаю, вам в основном нужно использовать Where и Max вместе, чтобы вы могли выбрать максимальное значение с условием где.

db.ShrinkLotData.Where(x => x.CatPattern.ToLower() == label.CatPattern.ToLower()).Max(x => x.InternalLotNum).Value;

Дополнительная информация: Композиционность запросов :

..., вы составляете их в синтаксисе метода, объединяя вызовы метода вместе. Это то, что компилятор делает негласно, когда вы пишете запросы, используя синтаксис запросов. А поскольку переменная запроса не хранит результаты запроса, вы можете изменить его или использовать его в качестве основы для нового запроса в любое время, даже после того, как он был выполнен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...