Как конвертировать Linq в SQL - PullRequest
0 голосов
/ 25 сентября 2019

Как я могу преобразовать этот SQL-запрос в LINQ?

select 
    c.Name as 'Name', s.Status 
from 
    (select 
         *, 
         row_number() over (partition by CustomerID order by Date desc) rn
     from 
         CustomerStatus) detail
inner join 
    Status s on detail.Status = s.Id
inner join
    Customers c on detail.CustomerId = c.Id
where 
    detail.rn = 1

Я не могу преобразовать этот SQL-запрос в linq - как я могу это сделать?

1 Ответ

0 голосов
/ 25 сентября 2019

Try (ctx - это контекст вашей базы данных):

ctx.CustomerStatus
  .GroupBy(cs => cs.CustomerId)
  .Select(gr => gr.OrderByDescending(cs => cs.Date).First())
  .Join(ctx.Status, cs => cs.Status, st => st.Id, (cs, st) => new {cs.CustomerId, Status = st})
  .Join(ctx.Customers, a => a.CustomerId, c => c.Id, (a, c) => new {a.Status.Status, c.Name});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...