Я выполняю следующий запрос в LINQPad:
Tickets.GroupJoin(UserRoles, t => t.AuthorId, r => r.UserId, (ticket, roles) => new {
AuthorId = ticket.AuthorId,
AuthorRoles = roles.Select(r => r.Role).Distinct(),
Message = ticket.Message,
Replies = ticket.TicketReplies.GroupJoin(UserRoles, reply => reply.AuthorId, role => role.UserId, (reply, roles2) => new {
AuthorId = reply.AuthorId,
AuthorRoles = roles2.Select(r => r.Role).Distinct(),
Message = reply.Message
})
}).Take(1000)
Где AuthorId
- это string
, AuthorRoles
- список int
с и Message
a string
. Этот запрос выполняет ужасно. В результате этого запроса из LINQPad отправляется более 2000 запросов.
- Почему LINQPad не может перевести это в один запрос SQL?
- Могу ли я сформулировать свой запрос по-другому, чтобы LINQPad мог работать лучше?