Я заметил странный перевод Sql в запросе LinqToSql, который я пытался оптимизировать.
Если я выполню следующее
Recipients.GroupJoin(
RecipientAttributes,
x => x.Recipient_Id,
y => y.Recipient_Id,
(x,y) => new {Recipient = x, Attributes = y})
.Skip(1)
.Take(1000)
Он выполняется в одном запросе, как и ожидалось.
Однако
Recipients.GroupJoin(
RecipientAttributes,
x => x.Recipient_Id,
y => y.Recipient_Id,
(x,y) => new {Recipient = x, Attributes = y})
.Skip(0)
.Take(1000)
выполняется в отдельном запросе для каждого выбора атрибутов.
Удаление пропуска (0) также не имеет значения.
Может кто-нибудь объяснить это, и есть ли что-то, что я могу сделать, чтобы запрос первой страницы выполнялся в одном выражении SQL?