SQL GROUP BY с MAX в качестве Linq? - PullRequest
0 голосов
/ 29 апреля 2020

этот простой вопрос переворачивает мою голову. Я хочу получить без оценки на стороне клиента самую последнюю дату заказа каждого пользователя. Я знаю, как получить эту информацию простым SQL, кто-нибудь знает, как преобразовать ее в Linq в SQL на ядре платформы сущностей?

здесь есть SQL:

SELECT
  orders.*
FROM
  (SELECT
     user_id, MAX(created_at) AS created_at
   FROM
     orders
   GROUP BY
     user_id) AS latest_orders
INNER JOIN
  orders
ON
  orders.user_id = latest_orders.user_id AND
  orders.created_at = latest_orders.created_at

1 Ответ

0 голосов
/ 29 апреля 2020

Сначала GroupBy UserId, затем выберите весь список в группе по userId, затем OrderByDescending по дате, затем возьмите верхнюю

var ListOrder=orders.GroupBy(x=>x.user_id ).SelectMany(g => g.OrderByDescending(d => d.created_at).Take(1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...